我应该使用哪个模型来确定预定义句子和新句子之间的相似性?

人工智能 机器学习 自然语言处理 张量流
2021-10-25 12:34:10

Levenshtein 算法和一些比率和比例可以处理这个用例。

基于预定义的语句序列,例如“我有一只狗”、“我拥有一辆汽车”等等,我必须确定另一个输入语句(例如“我有一只猫”)是否相同或如何输入语句很可能等于预定义语句的百分比。

例如:

预定义语句:“我有一条狗”、“我有一辆汽车”、“你认为你很聪明”

输入语句和结果:

我有一只狗 - 100%(因为它完全匹配),我有一只猫 - ~75%(因为除了动物之外几乎一样,想想 - ~10%(因为它只是第三条语句),瓶子 - 0%(因为它根本没有匹配)

要求是使用 TensorFlow 而不是 Java,这是我所知道的语言,所以任何关于入门的帮助都会有所帮助。

我的计划是使用预定义的语句作为 train_data,并在预测期间仅输出准确度,但我不知道该使用什么模型。请指导我的架构,我将尝试实现它。

1个回答

如果这是一个简单的语法比较,那么神经网络并不是实现这一目标的最佳方式。

如果是语义比较,那么你可以看看SNLI数据集中使用的模型。

从您的问题来看,它看起来只是一个语法比较。

考虑两句话:

她喜欢弹吉他

她喜欢听吉他

2个句子的词几乎相同,但意思不同。

现在考虑这两个句子:

这只鸟在喷泉里洗澡

小鸟在公共场所用水洗手

这两个句子几乎没有共同的词,但意思却很相似。


因此,如果您的用例需要为第一个示例返回高分,请放弃神经网络(有可能,但毫无意义)。

如果您的用例需要在第二个示例中返回高分,请查看SNLI排行榜,有很多模型可以使用。