将相似字符串与常用有效词匹配

2024-06-28 05:16:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用相同的有意义的词来匹配相似的字符串。你知道吗

问题:

我有两个文件一个主文件和一个输入文件。我必须遍历输入文件并从master中找到类似的记录。目前我已经在ElasticSearch中为主文件编制了索引,并尝试从ElasticSearch中获取相似的记录,但是由于主文件包含许多相似的记录,因此它会返回许多记录,从中找到合适的记录是个问题。你知道吗

样本输入记录:

1.  H1 Bulbs Included

ElasticSearch的样本输出:

1.  Included H1 [Correct One]
2.  H7 Bulbs Included
3.  H8 Bulbs Provided
4.  H1 not Included[Should not match this]

我试过使用POS-tagger来获取重要的术语,但效果不好。你知道吗

位置标签输出:

1.   H1/NNP Included/NNP
2.   H8/NNP Bulbs/NNP Provided/NNP

如何进行?你知道吗

编辑:

在上例中,H1是有效项

样本输入记录:

1. H1 Bulbs included

ElasticSearch的样本输出:

1.   H2 Bulbs Included
2.   H3 Bulbs Included
3.   H1 [Correct One]

一开始我需要找出有意义的词。这个有意义的词目前没有模式。你知道吗

即:

1.H1 bulbs [H1]
2.9600 added [9600]
3.It has H8 [H8]
4.1/2 wire for 4500 bulb [4500]

Tags: 文件字符串记录notelasticsearchh1oneprovided
1条回答
网友
1楼 · 发布于 2024-06-28 05:16:29

我不熟悉elasticsearch,但是使用标准python应该很简单。从您上面的标准来看,不清楚“H1”中哪些是真正重要的词“Included”和“bulls”,以及处理标准是什么,但作为一个简单的例子:

inputstr = 'H1 Bulbs Included'
keywords = ('H1','Bulbs','Included')
result = [x for x in keywords if x in inputstr]

>>> ['H1','Bulbs','Included']

或者,如果你想做一些数学,你可以做

result = [bool(x) for x in keywords if x in inputstr]
>>> [True,True,True]

sum(result)
>>> 3

如果有些词是超临界的,你可以用乘法来表示临界词,如果你需要3个词中的2个,你可以检查总和,等等

要过滤掉“not”,你可以在inputstr中选择“not”

result = 'not' not in inputstr * result
>>> True

相关问题 更多 >