У меня есть набор рефератов исследований, которые помечены как POS для доступа к медицинской помощи и NEG для доступа к медицинской помощи. У меня буквально есть два поля: (1) аннотация (сводка исследования и (2) класс доступа (то есть POS или NEG). Я работал над примером movie_review с https://www.datacamp.com/community/tutorials/simplifying-sentiment-analysis-python, но хотел начать тестирование точности смой собственный набор данных. Что-то идет не так, как надо. Я получаю эту ошибку, которая, как я полагаю, связана с моим форматом, однако я не уверен, как заставить его соответствовать ... Любая помощь приветствуется.
ValueError: Распределение вероятностей ELE должно иметь хотя бы один бин.
# Load and prepare the dataset
import nltk
from nltk.corpus import movie_reviews
import random
import pandas as pd
from nltk.tokenize import word_tokenize
df = pd.read_excel("accessclasses.xlsx")
a = []
stopwords = nltk.corpus.stopwords.words('english')
aa = df.abstract.tolist()
import re
for each_a in aa:
each_a = str(each_a)
each_a = re.sub(r'[^\w\s]','',each_a)
words = word_tokenize(each_a)
filtered_sentence = [w for w in words if not w in stopwords]
filtered_sentence = ' '.join(filtered_sentence)
a.append(filtered_sentence)
b = df.accessclass.tolist()
def merge(a, b):
merged_list = [(a[i], b[i]) for i in range(0, len(a))]
return merged_list
documents = (merge(a, b))
random.shuffle(documents)
# Define the feature extractor
all_words = nltk.FreqDist(w.lower() for w in movie_reviews.words())
word_features = list(all_words)[:200]
def document_features(document):
document_words = set(document)
features = {}
for word in word_features:
features['contains({})'.format(word)] = (word in document_words)
return features
# Train Naive Bayes classifier
featuresets = [(document_features(d), c) for (d,c) in documents]
train_set, test_set = featuresets[50:], featuresets[:50]
classifier = nltk.NaiveBayesClassifier.train(train_set)
# Test the classifier
print(nltk.classify.accuracy(classifier, test_set))
# Show the most important features as interpreted by Naive Bayes
classifier.show_most_informative_features(5)