Python通用单词查找

时间:2019-02-12 15:54:42

标签: python

我有一个小程序,它查看文本文件并显示单词使用了多少时间。它不打印单词,而是打印最常用的字母,而不是单词,我不明白问题出在哪里。

import re
from collections import Counter

words = re.findall(r'\w', open('words.txt').read().lower())
count = Counter(words).most_common(8)
print(count)

4 个答案:

答案 0 :(得分:1)

我希望这会有所帮助,这是一个正则表达式答案,应该一个字一个字地

import re
with open("words.txt") as f:
    for line in f:
        for word in re.findall(r'\w+', line):
            # word by word

如果您的数据周围没有引号,并且一次只想要一个单词(忽略文件中空格和换行符的含义),请尝试以下操作:

with open('words.txt','r') as f:
    for line in f:
        for word in line.split():
           print(word)   

答案 1 :(得分:0)

import string    
words = open('words.txt').read().lower()
# skip punctuation 
words = words = words.translate(str.maketrans('', '',string.punctuation)).split()
count = Counter(words).most_common(8) 

答案 2 :(得分:0)

regex \w中的

只是任何字符,而不是任何单词。您可以获取以下单词的列表:

words= ' '.split( open('words.txt').read().lower())

然后执行您正在做的事情:

count = Counter(words).most_common(8)
print(count)

我想就足够了,告诉我它是否不起作用。

答案 3 :(得分:0)

假设您有以下文本文件:

  

Lorem ipsum dolor坐在amet,安全adipiscing精英,sed做   厄瓜多尔临时劳动者和劳动者联合会。 Ut Enim广告   最小的veniam,quis nostrud锻炼ullamco labisnis ut   aliquip ex ea commodo结果。 Duis aute irure dolor in   在深情的天鹅绒中重新演绎   壁画准圣人occaecat cupidatat非偶然的,在   尽职尽责的犯罪行为。

您要计算单词频率:

import operator

with open('text.txt') as f:
    words = f.read().split()

result = {}
for word in words:
    result[word] = words.count(word)

result = sorted(result.items(), key=operator.itemgetter(1), reverse=True)
print(result)

您将获得一个单词列表,其中每个单词的出现次数以降序排列:

  

[('in',3),('dolor',2),('ut',2),('dolore',2),('Lorem',1),   (“ ipsum”,1),...