假设我有4个文本块:
1.
Premium 95 950,034
950,03
158,34
NUMERAR: 1
REST
2.
Premium 15 950,034
111,03 aaaaa
158,34
NUMERAR: 1
REST
3.
Premium 95 950,034
950,03 bbbbb
158,34
dddddd
fffff
4.
PremiR 95 950,034
950,03
158,34
NUMERAR: 1
REST A
如您所见,这些块彼此不同。
有一些最重合的-这是块1和4。有一些最不匹配的块-这是块2和3。
是否有一种算法(在Java / kotlin上)找到最匹配的文本块?在此示例中:1和4
每个块中有多少个单词匹配?
?
附言也许Levenshtein Distance可以帮助您
最佳答案
您应该搜索correlation。
以下内容并非主要用于相关性。
一种简单而逐步的方法来简化数据:
将每个块转换为单词序列;单词ID。并使用levenshtein distance测量每两个序列之间的差异。
缓慢的二次O(N²)。
不尊重结构化数据(标题,数字X,数字Y)
这不尊重类似的单词Premium / PremiR。
您可以按n元语法(例如n = 3个单词的子序列)对块进行索引,从而减少数量或组合。
关于java - 查找最匹配的文本块的算法(在Java/Kotlin上),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59566081/