Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算标记化列表中的汉语词频?_Python_Tokenize_Word Frequency - Fatal编程技术网

Python 如何计算标记化列表中的汉语词频?

Python 如何计算标记化列表中的汉语词频?,python,tokenize,word-frequency,Python,Tokenize,Word Frequency,我正在使用python 2.7。 我想数一数汉语单词的频率。 如何使用标记化列表来实现这一点?我想在下一步找到句子的位置。 所以,希望我能数一数单词的频率,同时给出每个单词在同一时间的起点和终点 我试图从输入文件中计算词频,这与我的标记化无关。但这也给了我一个错误的结果。 对于计数器部分,它向我显示了以下内容: 计数器({u'\u7684':1}),但我的预期结果是计数器({'的': 27}) 这是不正确的: for word in [u'的']: cnt[word] += 1 您需要在文

我正在使用python 2.7。 我想数一数汉语单词的频率。 如何使用标记化列表来实现这一点?我想在下一步找到句子的位置。 所以,希望我能数一数单词的频率,同时给出每个单词在同一时间的起点和终点

我试图从输入文件中计算词频,这与我的标记化无关。但这也给了我一个错误的结果。 对于计数器部分,它向我显示了以下内容: 计数器({u'\u7684':1}),但我的预期结果是计数器({'的': 27})

这是不正确的:

for word in [u'的']:
  cnt[word] += 1
您需要在文件中的单词上运行循环:

for word in open(userinput,'r').read().split():
    cnt[word] += 1
这就是你的整个积累循环。您正在单字符
u'上循环的'。我想那不是你想做的

计数器
在您向其馈送一个iterable时效果最佳。忘记这个
cnt+=1
的东西吧,它很慢,而且把计数器当作
defaultdict
处理。一次给它喂一个完整的iterable:

cnt = Counter(inf.read().split())
看起来你是在第二次不必要地打开这个文件;既然您已经在上面将其标记为
结果
,为什么不:

cnt = Counter(tk[0] for tk in result)
cnt = Counter(inf.read().split())
cnt = Counter(tk[0] for tk in result)