通过协议与关键字订购文本

时间:2015-10-22 20:21:22

标签: python

我试图通过与关键字列表的协议来订购一些简短的段落。这用于向用户提供按兴趣排序的文本。

假设我已经拥有关键字列表,希望能够反映用户的兴趣。我认为这是一个相当标准的程序,并期望一些python包。但到目前为止,我的谷歌搜索并不是很成功。

我自己可以很容易地提出一个强力解决方案,但我想知道是否有人知道这样做的有效方法?

编辑: 好的,这是一个例子:     keywords = [' cats',' food',' Miau']

text1 = 'This is text about dogs'
text2 = 'This is text about food'
text3 = 'This is text about cat food'

我需要一个导致命令text3,text2,text1的过程 谢谢

2 个答案:

答案 0 :(得分:2)

这是我能想到的最简单的事情:

import string

input = open('document.txt', 'r')
text = input.read()

table = string.maketrans("","")
text = text.translate(table, string.punctuation)

wordlist = text.split()
agreement_cnt = 0

for word in list_of_keywords:
    agreement_cnt += wordlist.count(word)

从此处获取删除标点位:Best way to strip punctuation from a string in Python

答案 1 :(得分:0)

这样的事情可能是一个很好的起点:

>>> keywords = ['cats', 'food', 'Miau']
>>> text1 = 'This is a text about food fed to cats'
>>> matched_word_count = len(set(text1.split()).intersection(set(keywords)))
>>> print matched_word_count
2

如果你想纠正大小写或捕获单词形式(即“猫”而不是“猫”),那么显然需要考虑更多。

采用上述方法并捕获不同字符串列表的匹配计数,然后对结果进行排序以找到最佳"匹配,应该比较简单。