给定一个语料库和测试集。 语料库包含10000个完整的句子。 测试集包含100个不完整的句子,每个句子有3个连续的单词。 我想用ngrams训练语料库并预测测试集的下一个单词。在
text = 'dataset.txt'
# Order of the grams
n = 2
ngrams = {}
words = nltk.word_tokenize(text)
for i in range(len(words)-n):
gram = ' '.join(words[i:i+n])
if gram not in ngrams.keys():
ngrams[gram] = []
ngrams[gram].append(words[i+n])
currentGram = ' '.join(words[0:n])
result = currentGram
for i in range(30):
if currentGram not in ngrams.keys():
break
possibilities = ngrams[currentGram]
nextItem = possibilities[random.randrange(len(possibilities))]
result += ' '+nextItem
rWords = nltk.word_tokenize(result)
currentGram = ' '.join(rWords[len(rWords)-n:len(rWords)])
测试集采用.csv格式 Top five lines of a test set
我不确定你是否要求一个适合这项任务的算法。在
您可以使用Markov Models来预测序列。在
根据您有多少数据,您应该考虑RNNs、LSTMs和{a4}。在
相关问题 更多 >
编程相关推荐