我有一个字符串列表,它们是来自不同电子邮件会话的主题。我想看看是否有经常使用的单词或单词组合。在
例如:subjects = [
'Proposal to cooperate - Company Name',
'Company Name Introduction',
'Into Other Firm / Company Name',
'Request for Proposal'
]
该函数必须检测到“公司名称”作为组合被多次使用,“建议”被多次使用。这些词不会提前知道,所以我想它必须开始尝试所有可能的组合。在
当然,实际的列表要比这个例子长很多,所以手动尝试所有的组合似乎不是最好的方法。最好的办法是什么?在
更新
我已经使用了timpietzcker的答案来开始开发一个函数,但是我仍然无法正确地应用计数器。它不断返回列表的长度作为所有短语的计数。在
“短语”功能,包括标点符号过滤器和检查此短语是否已被检查,每个短语的最大长度为3个单词:
^{pr2}$
然后循环浏览主题列表:phrase_list = []
ranking = {}
for s in subjects:
result, phrase_list = phrases(s, phrase_list)
all_phrases = collections.Counter(phrase.lower() for s in subjects for phrase in result)
“all\u phrases”返回一个包含元组的列表,其中每个计数值为167,这是我使用的主题列表的长度。不知道我在这里错过了什么。。。在