根据意义比较文本
Comparing texts based on their meanings
我们有一个文档库(word 和纯文本),其中可能包含多达 1000、2000 甚至更多项。每个文档可能包含数千个单词。给了我们一份参考文档,我们应该从池中找到与该参考文档语义最接近的匹配项。
我们首先使用了 SQL Server 2017 的语义搜索功能,但它返回的记录不超过 10 条,这是一个限制!市场上还有哪些其他技术或工具可以满足此目的。我们更愿意利用 Microsoft 的认知工具和服务,但我们对任何其他选项持开放态度,包括可以提供帮助的开源。
如果文件是技术性质的,我建议研究 TF-IDF 方法。 TF-IDF 查看文档中术语的频率 (TF),并将其与逆文档频率 (IDF) 相乘,这是衡量术语在整个语料库中稀缺性的一种方法。其想法是:一个你经常使用但在整个语料库中很少使用的词,很可能使它成为文档含义的重要术语。然后将相似性度量(例如余弦相似性)应用于 TFIDF 以查找在 TFIDF 分数方面具有相似配置文件的文档(即相对独特术语的类似过度使用)
如果文本本质上技术含量较低,您可以查看 Document2Vec 等词嵌入方法 - 基本上它们使用具有多维向量的训练集。这些多维向量试图捕捉单词的含义,这意味着您不依赖于所使用的相同关键字(TFIDF 就是这种情况)。
现有实现(尤其是基于 Python),但 Azure 也可能促进这些技术(c.f。HDInsight https://docs.microsoft.com/en-us/azure/architecture/data-guide/technology-choices/natural-language-processing)。您还可以查看开箱即用的 ElasticSearch。
我们有一个文档库(word 和纯文本),其中可能包含多达 1000、2000 甚至更多项。每个文档可能包含数千个单词。给了我们一份参考文档,我们应该从池中找到与该参考文档语义最接近的匹配项。
我们首先使用了 SQL Server 2017 的语义搜索功能,但它返回的记录不超过 10 条,这是一个限制!市场上还有哪些其他技术或工具可以满足此目的。我们更愿意利用 Microsoft 的认知工具和服务,但我们对任何其他选项持开放态度,包括可以提供帮助的开源。
如果文件是技术性质的,我建议研究 TF-IDF 方法。 TF-IDF 查看文档中术语的频率 (TF),并将其与逆文档频率 (IDF) 相乘,这是衡量术语在整个语料库中稀缺性的一种方法。其想法是:一个你经常使用但在整个语料库中很少使用的词,很可能使它成为文档含义的重要术语。然后将相似性度量(例如余弦相似性)应用于 TFIDF 以查找在 TFIDF 分数方面具有相似配置文件的文档(即相对独特术语的类似过度使用)
如果文本本质上技术含量较低,您可以查看 Document2Vec 等词嵌入方法 - 基本上它们使用具有多维向量的训练集。这些多维向量试图捕捉单词的含义,这意味着您不依赖于所使用的相同关键字(TFIDF 就是这种情况)。
现有实现(尤其是基于 Python),但 Azure 也可能促进这些技术(c.f。HDInsight https://docs.microsoft.com/en-us/azure/architecture/data-guide/technology-choices/natural-language-processing)。您还可以查看开箱即用的 ElasticSearch。