Python,查找每个令牌出现在给定文件中的次数

时间:2018-10-26 12:08:20

标签: python regex python-3.x counter

我想列出出现在文件中的令牌以及这些令牌的计数。我写了下面的代码,但是不能按我的意愿工作。

from collections import Counter
import re

seen = set()
words = re.findall(r'\w+', open('deneme.txt').read().lower())
seen = Counter(words).most_common()

print (seen)

deneme.txt是这样的:

Erke Varol
Antalya Koleji 
123 123 
Erke
Erke 
 (asdfsdf)^'
Erke Varol
Antalya
123
Antalya
aç+Noun birak+Verb 
aç+Noun ol+Verb 
aç+Noun ol+Verb 
aç+Noun ol+Verb 

结果与我的代码如下:

[('erke', 4), ('aç', 4), ('noun', 4), ('verb', 4), ('antalya', 3), ('123', 3), ('ol', 3), ('varol', 2), ('koleji', 1), ('asdfsdf', 1), ('birak', 1)]

我的问题是我想将aç+ Noun或ol + Verb作为单个令牌获得,但是使用此代码是不可能的,而且我不明白为什么。

1 个答案:

答案 0 :(得分:0)

字符类\w仅包含字母数字字符和下划线,因此如果您想将+视为单词的一部分,则应将其包括在字符集中:

words = re.findall(r'[\w+]+', open('deneme.txt').read().lower())