Python, Нахождение количества раз, когда каждый токен появляется в данном файле - PullRequest
0 голосов
/ 26 октября 2018

Я хочу перечислить токены, появляющиеся в файле, с количеством этих токенов.Я написал приведенный ниже код, но он не работает так, как мне нравится.

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 голосов
/ 26 октября 2018

Класс символов \w включает только буквенно-цифровые символы и подчеркивание, поэтому, если вы хотите, чтобы + считался частью слова, вы должны включить его в набор символов:

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