我需要编写一个函数(属于类的一部分),利用该函数可以在古腾堡语料库的书中找到最频繁出现的邻居(左右)。我有点迷路了...
from nltk.corpus import gutenberg
Class .......
. def getNeighbour(self, word)
. # code that gets neighbour
. Return neighbour
nltk中是否有内置函数可以做到这一点?
答案 0 :(得分:0)
第一个使输入字符串标记成为
token = file_text.split(" ")
使用
将此脚趾的二字形def make_ngram(tokens, N=2):
arr_ngram = []
for i in range(len(tokens) - N + 1):
arr_ngram.append(tokens[i:i + N])
return arr_ngram
现在像这样计算频率
def calculate_frequency(arr_ngram):
counts = {}
for ngram in arr_ngram:
token_seq = SPACE.join(ngram[:-1])
last_token = ngram[-1]
if token_seq not in counts:
counts[token_seq] = {};
if last_token not in counts[token_seq]:
counts[token_seq][last_token] = 0;
counts[token_seq][last_token] += 1;
return counts;
计数将返回所有邻居及其频率。您可以选择频率最高的邻居。