如何解决在文本中查找重复的句子
我想知道如何在同一句子中找到相似之处。 我有一个这样的句子列表:
my_list=["do you want pizza for dinner? Do you want pizza for dinner?","I like pizza","I have no money I have no money"]
我想创建一个熊猫数据框,如果在其中重复一个句子,我将赋值为1,否则赋值为0。
类似这样的东西:
Text Repeated?
do you want pizza for dinner? Do you want pizza for dinner? 1
I like pizza 0
I have no money I have no money 1
我在想这样的事情:
from collections import Counter
my_list = dict(Counter(my_list.split()))
for i in sorted(my_list.keys()):
print ('"'+i+'" is repeated '+str(my_list[i])+' time.')
然后计算该句子中总共有多少个单词以及总共有多少个唯一单词。但是我认为这不如编码。 您知道是否还有另一种方式来获得预期的结果?
解决方法
您可以对任务(regex101)使用正则表达式:
import re
import pandas as pd
my_list=["do you want pizza for dinner? Do you want pizza for dinner?","I like pizza","I have no money I have no money"]
df = pd.DataFrame({'Text': my_list})
r = re.compile(r'(.+)\s*\1$',flags=re.I)
df['Repeated'] = df['Text'].apply(lambda x: bool(r.match(x))).astype(int)
print(df)
打印:
Text Repeated
0 do you want pizza for dinner? Do you want pizz... 1
1 I like pizza 0
2 I have no money I have no money 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。