python - 如何将一个句子分成几个词组?
问题描述
我想将一个句子拆分成几个有意义的部分,例如:我有一个来自用户的输入:Samsung phone case
,我想拆分成一个列表:[,,,Samsung phone
] phone case
,Samsung phone case
这意味着Samsung phone
是一个有效的对象,phone case
是另一个有效的对象,Samsung phone case
也是一个有效的对象,如何用 python 做到这一点?
版主说我需要添加一些调试细节,所以我再解释一下,我需要分析来自用户的输入,例如拆分/组合,另一个例子:用户输入:case of Samsung phone
,我需要的结果是:[ case of Samsung
, case of Samsung phone
, Samsung phone
],这不是一个示例拆分和组合,因为case of
不是我需要的,我尝试了 nltk lib,它可以拆分为每个单词,但没有组合。
所以关键是在组合之后,短语/单词应该像上面的例子一样有意义=> [ case of Samsung
, case of Samsung phone
, Samsung phone
] 中的每一个都是有意义的,但case of
没有意义(不是有效的对象)。
我不知道是否有 AI 库可以帮助我解决问题。
解决方案
看起来您不是想要拆分,而是想要组合(或某种电源组)。拆分是必要的中间环节:
s = 'Samsung phone case'
from itertools import combinations, chain
l = s.split()
list(chain(*(map(' '.join, combinations(l, r=n)) for n in range(2,len(l)+1))))
输出:
['Samsung phone', 'Samsung case', 'phone case', 'Samsung phone case']
推荐阅读
- c# - 复杂的 if 语句永远不会被执行
- c# - SaveChanges 后 EF Core 引用为空
- python - 如何更改 seaborn kdeplot 中的图例位置?
- python - 熊猫排序值以获取最多放置的项目
- python - 将 python 项目导入 HTML 页面
- ruby-on-rails - ActiveRecord 异常中的“安全”是什么意思?ActiveRecord::StatementInvalid: [安全] SQLite3::BusyException: 数据库被锁定
- excel - 在 B 列中添加多个名称的首字母
- python - Pandas - 来自具有多个(如果)条件的单列的数据框编辑字符串
- r - 如何将具有不同维度的多个数据框放入单个列表中
- python - 无法安装 h5py