我想计算已转换为标记的文本文件中特定单词前后三个单词的频率。
from nltk.tokenize import sent_tokenize
from nltk.tokenize import word_tokenize
from nltk.util import ngrams
with open('dracula.txt', 'r', encoding="ISO-8859-1") as textfile:
text_data = textfile.read().replace('\n', ' ').lower()
tokens = nltk.word_tokenize(text_data)
text = nltk.Text(tokens)
grams = nltk.ngrams(tokens, 4)
freq = Counter(grams)
freq.most_common(20)
我不知道如何搜索字符串“dracula”作为过滤词。我也试过:
text.collocations(num=100)
text.concordance('dracula')
期望的输出看起来像这样的计数: 'dracula' 之前的三个单词,排序计数
(('and', 'he', 'saw', 'dracula'), 4),
(('one', 'cannot', 'see', 'dracula'), 2)
'dracula' 之后的三个单词,排序计数
(('dracula', 'and', 'he', 'saw'), 4),
(('dracula', 'one', 'cannot', 'see'), 2)
中间包含“dracula”的三元组,已排序计数
(('count', 'dracula', 'saw'), 4),
(('count', 'dracula', 'cannot'), 2)
预先感谢您的任何帮助。