我有两个字幕文件。 我需要一个函数来判断它们是代表相同的文本,还是相似的文本
有时只有一个文件中会出现诸如“风在吹...音乐在播放”之类的评论。 但 80% 的内容将是相同的。该函数必须返回 TRUE(文件代表相同的文本)。 有时会出现拼写错误,例如 1 而不是 l(one - L),如下所示: 她把行李丢了。 当然,这意味着函数必须返回 TRUE。
我的评论:
该函数应返回文本相似度的百分比 - 同意
“all the people were happy”和“all the people were not happy”- 在这里会被视为拼写错误,因此会被视为相同的文本。确切地说,函数返回的百分比会较低,但足以说明短语相似
一定要考虑是要对整个文件应用 Levenshtein 还是只对搜索字符串应用 Levenshtein - 不确定 Levenshtein,但算法必须作为一个整体应用于文件。不过,这将是一个很长的字符串。
最佳答案
编辑算法:http://en.wikipedia.org/wiki/Levenshtein_distance
除零以外的任何结果都表示文本不“相同”。 “相似”是衡量它们有多远/多近的量度。结果是一个整数。
关于java - 文本相似度算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2325588/