【问题标题】:Python, Finding the number of times each token appears in a given filePython,查找每个标记在给定文件中出现的次数
【发布时间】:2018-10-26 12:08:20
【问题描述】:

我想列出出现在文件中的标记以及这些标记的计数。我写了下面的代码,但它没有按我喜欢的方式工作。

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 作为单个标记,但使用此代码是不可能的,我不明白为什么。

【问题讨论】:

  • 在您的re.findall 通话中尝试r'\w+(?:\+\w+)?'

标签: python regex python-3.x counter


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-02-26
    • 2023-04-09
    • 2011-11-02
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多