用python在一个较长的文本中找到一个短语的最有效的方法是什么?我想做的是找到完整的短语,但是如果找不到,就把它分成更小的部分,然后试着找到它们,直到单个单词。
例如,我有一个文本:
段落是论文的基石。许多学生根据长度来定义段落:一个段落是至少五个句子的一组,一个段落是半页长,等等……头脑 Storm 有很多技巧;无论你选择哪一个,段落发展的这个阶段都不能跳过。
我想找到这个短语:第一个月
整个短语,因为它是不会被发现,但其较小的部分是的。因此,它将发现:
- 那里
- 是一组
- 学生
这可能吗如果是这样,什么是最有效的算法来实现?
我尝试了一些递归函数,但它们无法找到短语的这些子部分,要么找到整个短语,要么只找到单个单词。
4条答案
按热度按时间qfe3c7zg1#
如果你想要一个健壮的方法,在单词级别上工作,但也可以捕获,例如,“...That”与“那个”,我推荐一些基本的NLP和NLTK。这是如果你正在处理一个小型到中型的数据集。
字符串
输出量:
型
jdzmm42g2#
最简单的方法是生成您想要查找的短语的所有可能子集,然后使用
if phrase_slice in paragraph
检查文本是否包含它们。要获得子集,您可以使用双循环-首先确定要包含的短语中的单词数量,然后偏移单词。举个例子:
字符串
gv8xihay3#
字符串
代码有点复杂,但它工作得很好,在我的机器上执行时间为54 ms。
代码首先对输入文本进行切片,并获取文本中要查找的所有单词。然后,它尝试将相邻的单词重新组合成组,找到剩余的没有组合在一起的单词并打印所有内容。
希望能有所帮助!
gdrx4gfi4#
像这样的工作吗?
字符串
该输出:
型