我需要一些python建议来实现一个算法。你知道吗
我需要的是检测文本1中的哪些单词在文本2中:
Text 1: "Mary had a dog. The dog's name was Ethan. He used to run down the meadow, enjoying the flower's scent."
Text 2: "Mary had a cat. The cat's name was Coco. He used to run down the street, enjoying the blue sky."
我想我可以使用一些pandas数据类型来检查重复,但我不确定。你知道吗
任何关于如何实现这一点的想法都会非常有用。事先非常感谢。你知道吗
首先将两个字符串中的单词提取到列表中。我想您应该忽略任何尾随句点或逗号。将其中一个列表添加到集合(用于预期的常量时间查找)。对于另一个列表中的每个单词,检查它是否也出现在集合中;这样就可以得到两个文本中的共同单词。我假设重复的元素只计算一次。以下是执行此操作的代码:
例如,它将返回:
注意,单词“the”和“the”被认为是不同的。如果不想这样,可以将所有单词转换成小写;
words[i] = lower(words[i].strip('.,'))
您可以使用字典首先存储第一个文本中的单词,而不只是在迭代第二个文本时查找。但这需要空间。你知道吗
所以最好的方法是使用正则表达式。你知道吗
既然你没有展示你自己的作品,我就给你一个整体的算法。你知道吗
首先,把每一篇文章分成几个字。这可以通过几种方式实现。您可以删除任何标点符号,然后在空格上拆分。你需要决定在
dog's
中的撇号是否是你可能想留下撇号的单词的一部分。但是去掉句号,逗号等等。你知道吗第二,将每个文本的单词放入一个集合中。你知道吗
第三,使用内置的set操作查找两个集合中的单词。你知道吗
这将回答你的实际问题。如果你想问另一个涉及字数或位置的问题,你应该说清楚。你知道吗
相关问题 更多 >
编程相关推荐