使用python查找常用短语

时间:2016-01-04 17:01:11

标签: python string python-2.7 csv text

我正在尝试使用Python 2.7来查找常用短语和计数。目前我只能得到单个单词及其数量,但我需要常用短语。

到目前为止,这是我的代码:

import csv
from sys import argv
from collections import defaultdict
from collections import Counter
script, filename = argv
data = defaultdict(list)

with open (filename, 'rb') as f:
    reader = csv.reader(f)
    text_file = open("output.txt", "w")
    next(reader, None)
    for row in reader:
        data[row[2]].append(row[3])
        text_file.write("%r" % data)
    text_file.close()

print(data)
c = Counter(defaultdict)
print c.most_common(10)

2 个答案:

答案 0 :(得分:0)

如果你打算为多个文件或大文件执行此操作,我建议使用像Lucene这样的索引引擎。

你可以将n-gram(n-words的短语)索引到Lucene中,然后使用Lucene的查询和搜索API轻松排名和查找出现次数最多的短语。

使用pylucene

在Python中支持Lucene

答案 1 :(得分:0)

首先,使用natural language标记器来考虑短语。即使是最简单的语言也会对句子的定义产生巨大的微妙之处,即尝试用正则表达式解析短语可能会让你发疯。

从那里开始,使用你的方法来计算“短语”的频率,而不是你正在做的单词,考虑到“常用短语”意味着不止一次出现的那些。如果这不是你对“常用短语”的意思,那么你应该在你的问题中进一步澄清。