【发布时间】:2019-04-18 07:03:01
【问题描述】:
我希望我的代码能够将文本文件拆分为单字符和双字符 n-gram。例如,如果出现“dogs”这个词,我会想要“do”、“og”和“gs”。问题是我似乎只能将文本拆分成整个单词。
我尝试只使用一个简单的 split(),但这似乎不适用于重叠的 n-gram。
from collections import Counter
from nltk.util import ngrams
def ngram_dist(fname, n):
with open(fname, 'r') as fp:
for lines in fp:
for words in lines:
result = Counter(ngrams(fname.split(),n))
return result
【问题讨论】:
-
您想将每个单词拆分成一个 n-gram 吗?还是每个句子?还是每个文件?通常,n-gram 拆分一个单词,它们拆分一个句子。
-
这应该可以工作:
b="dogs"; print([b[i:i+2] for i in range(len(b)-1)]) -
@lll 不,这绝对不是骗人的,它只要求 words 的字符 n-gram,这个想要处理 a 中的所有行文件。请不要仅仅依赖问题的标题,它们通常需要更正。
-
请不要发布duplicate questions,这是不允许的。您能否将其中一个请求合并到另一个请求中(粘贴您的代码和详细信息),然后关闭不需要的一个?
标签: python