gpt4 book ai didi

python:过滤几乎相同文本的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:24:18 24 4
gpt4 key购买 nike

我有一个字符串列表(论坛上的主题),例如:

"[John Smith] Hello my friend 1080p"
"It was him! by Ronnie"
"new: Hello, my friend, J. Smith"
"Askade la bonko"
...
"Smith John: Hello my friend! (super mega must see!)"
"Alibaba won that game by John Smith"

我需要过滤相同的内容主题。从这个列表中我可以看到 1,3(标题中有逗号)和 pre-last(标题中有!)主题具有相同的内容,但标题略有不同(“你好,我的 friend ”)。

是否有任何算法可以过滤这些?我的意思是我想在我的字符串列表中只有一个“Hello my friend”。谢谢指教!

最佳答案

一个常用的模型是 bag of words模型。其中常用的距离度量是 cosine similarity .

您有一个实词列表。您可能希望包含“Hello”和“friend”之类的内容,而不是“by”和“and”之类的内容。

您可能还想转换输入的单词,例如您可能不希望区分大小写,理想情况下您可能希望去除语法变形。所以你想要这样的东西:

>>> content_words( "Smith John: Hello my friend (super mega must see!)" )
[ "smith", "john", "hello", "friend", "super", "mega", "must" ]

另一个答案对如何做到这一点有很好的建议。

每个主题行在概念上都映射到一个高维向量,其维度对应于每个内容词。该模型有两个细微的变化(如果有任何显着差异,您可以看到哪个对您的数据最有效):

  • 如果单词出现,则元素的条目为 1,否则为 0
  • 向量在某一维度的值是对应词出现的次数

两个条目的余弦相似度是向量的点积除以向量范数的乘积。

正如您可能看到的那样,您实际上不需要在内存中构造那些巨大的向量(它们是稀疏的——大多数条目将为零)。知道实词的总数以及其中哪些词出现在相关条目中就足够了。

关于python:过滤几乎相同文本的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17210228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com