python中的字符串相似性(语义)

python中的字符串相似性(语义),python,string,semantics,similarity,Python,String,Semantics,Similarity,如何计算两个字符串之间的字符串相似性(语义) 例如,如果我有两个字符串,如“显示”和“屏幕”,则字符串相似性必须接近100% 如果我有“显示”和“颜色”屏幕相似性必须接近0% 我正在用Python编写脚本。。。我的问题是,是否存在这样的库或框架或思考。。。另外,有人能给我推荐一个好方法吗?你想解决的是NLP问题;如果你不熟悉的话,这会很麻烦。最受欢迎的库是,它有很多人工智能工具。快速搜索您要查找的内容,可以得到语义逻辑: 这是一个计算量很大的过程,因为它需要加载整个英语的词典。如果您有一小部分示

如何计算两个字符串之间的字符串相似性(语义)

例如,如果我有两个字符串,如“显示”和“屏幕”,则字符串相似性必须接近100%

如果我有“显示”和“颜色”屏幕相似性必须接近0%


我正在用Python编写脚本。。。我的问题是,是否存在这样的库或框架或思考。。。另外,有人能给我推荐一个好方法吗?

你想解决的是NLP问题;如果你不熟悉的话,这会很麻烦。最受欢迎的库是,它有很多人工智能工具。快速搜索您要查找的内容,可以得到语义逻辑:


这是一个计算量很大的过程,因为它需要加载整个英语的词典。如果您有一小部分示例,您最好自己创建映射。

您要解决的是NLP问题;如果你不熟悉的话,这会很麻烦。最受欢迎的库是,它有很多人工智能工具。快速搜索您要查找的内容,可以得到语义逻辑:


这是一个计算量很大的过程,因为它需要加载整个英语的词典。如果您有一小部分示例,您最好自己创建一个映射。

基于您的示例,我认为您正在寻找语义相似性。例如,您可以通过使用来实现这一点,但是您必须添加一个例子,例如,您正在使用名词,并且可能会重复使用单词的不同含义。该链接显示了两个根据不同实现计算相似性的示例


然而,大多数实现在计算上是昂贵的:它们使用大量文本来计算两个单词彼此接近的频率,等等。

基于您的示例,我认为您在寻找语义相似性。例如,您可以通过使用来实现这一点,但是您必须添加一个例子,例如,您正在使用名词,并且可能会重复使用单词的不同含义。该链接显示了两个根据不同实现计算相似性的示例


然而,大多数实现在计算上是昂贵的:它们使用大量文本来计算两个单词彼此接近的频率,等等。

请查看以下库:


查看以下库:


查看Gensim库中实现的word2vec。它的一个特点是计算单词相似度

可以找到更多详细信息和演示


我相信这是目前最先进的技术。

查看Gensim库中实现的word2vec。它的一个特点是计算单词相似度

可以找到更多详细信息和演示


我相信这是目前最先进的技术。

我不擅长NPL,但我认为Levenshtein距离算法可以帮助你解决这个问题。因为我使用这个算法来计算字符串之间的相似性。性能也不错。 下面是我的CPP代码,单击链接,也许你可以将代码转换成Python。我稍后会发布Python代码。 如果你了解动态规划,我认为你能理解它。
我不擅长NPL,但我认为Levenshtein距离算法可以帮助你解决这个问题。因为我使用这个算法来计算字符串之间的相似性。性能也不错。 下面是我的CPP代码,单击链接,也许你可以将代码转换成Python。我稍后会发布Python代码。 如果你了解动态规划,我认为你能理解它。

@DTing:dinstance是相似性的反面,而且这是语义相似性。WordNet可能是一个很好的起点。我明白了。误读了这个问题。你需要一个语义网或数据库来关联大量单词的意思。然后查询两个输入词的相似度。它的操作将使用相似性的传递性来计算尚未存储的对的相似性。@DTing:dinstance是相似性的反义词,而且这是语义相似性。WordNet可能是一个很好的起点。我明白了。误读了这个问题。你需要一个语义网或数据库来关联大量单词的意思。然后查询两个输入词的相似度。它的操作将使用相似性的传递性来计算尚未存储的对的相似性。Levenshtein距离只计算将一个字符串转换为另一个字符串的最小插入、删除和修改次数。我认为OP是在寻找语义相似性,而不是语法相似性。Levenshtein距离仅计算将一个字符串转换为另一个字符串所需的最小插入、删除和修改次数。