Я на самом деле пытаюсь сделать элементарный классификатор, поэтому я буду в порядке с решением NLTK, но моя первая пара попыток сделать это была с Pandas.
У меня есть пара списков, которые яхотите проверить текст и получить количество слов, а затем вернуть упорядоченный
import pandas as pd
import re
fruit_sentences = ["Monday: Yellow makes me happy. So I eat a long, sweet fruit with a peel.",
"Tuesday: A fruit round red fruit with a green leaf a day keeps the doctor away.",
"Wednesday: The stout, sweet green fruit keeps me on my toes!",
"Thursday: Another day with the red round fruit. I like to keep the green leaf.",
"Friday: Long yellow fruit day, peel it and it's ready to go."]
df = pd.DataFrame(fruit_sentences, columns = ['text'])
banana_words = ['yellow', 'long', 'peel']
apple_words = ['round', 'red', 'green leaf']
pear_words = ['stout', 'sweet', 'green']
print(df['text'].str.count(r'[XYZ_word in word list]'))
Здесь код взрывается, потому что str.count () не принимает список.
Конечная цель - получить возвращенный список кортежей, подобный этому:
fruits = [('banana', 5), ('pear', 6), ('apple', 6)]
Да, я мог бы перебрать все списки, чтобы сделать это, но, похоже, я просто недостаточно знаю Python, ачем Python не знает, как с этим справиться.
Я нашел этот вопрос, но похоже, что все ответили на него неправильно или с другим решением, отличным от того, что на самом деле запрашивалось, это здесь .
Спасибо, что помогли этому новичку разобраться!