python - 从python中的单词列表中查找最长的常用单词序列
问题描述
我搜索了很多解决方案,我确实发现了类似的问题。此答案返回可能不属于输入列表中所有字符串的最长字符序列。此答案返回必须属于输入列表中所有字符串的最长公共单词序列。
我正在寻找上述解决方案的组合。也就是说,我想要最长的常见单词序列,它可能不会出现在输入列表的所有单词/短语中。
以下是一些预期的示例:
['exterior lighting', 'interior lighting']
-->'lighting'
['ambient lighting', 'ambient light']
-->'ambient'
['led turn signal lamp', 'turn signal lamp', 'signal and ambient lamp', 'turn signal light']
-->'turn signal lamp'
['ambient lighting', 'infrared light']
-->''
谢谢
解决方案
此代码还将按列表中最常见的单词对您想要的列表进行排序。它将计算列表中每个单词的数量,然后将仅出现一次的单词剪切并对其进行排序。
lst=['led turn signal lamp', 'turn signal lamp', 'signal and ambient lamp', 'turn signal light']
d = {}
d_words={}
for i in lst:
for j in i.split():
if j in d:
d[j] = d[j]+1
else:
d[j]= 1
for k,v in d.items():
if v!=1:
d_words[k] = v
sorted_words = sorted(d_words,key= d_words.get,reverse = True)
print(sorted_words)
推荐阅读
- oracle - ORACLE APEX:动态更改图表
- wordpress - 古腾堡属性未正确保存或检索?
- r - 如何编辑所有列名以替换 R 中的某个字符?
- haskell - 如何使用适用于异构集合中每种类型的约束?
- flutter - Flutter 隐藏底部导航栏
- android - 如何使用 Cloud Functions 来使用 Firebase Cloud vision
- c# - WPF 绑定仅在 xaml 热重载修改后应用
- cypress - 如何获取页面上的值,以便我可以对其执行操作并验证值已更改
- laravel-8 - 重定向会话消息在 laravel 8 中未正确显示
- python - 在构建共现矩阵时使用fuzzywuzzy