gpt4 book ai didi

graph - 为图/分子比较算法调整文本搜索

转载 作者:行者123 更新时间:2023-12-04 21:25:07 25 4
gpt4 key购买 nike

我正在寻找一种用于非传统文本搜索的文本搜索引擎,并且我想要关于哪种工具(Lucene、Sphinx、Xapian 或其他工具)最适合我的建议,以及有关从哪里开始的指示。

我将分子表示为图形(原子和键)。我有办法enumerate all subgraphs最大大小为 k。出于技术考虑,输入为 SMILES并且输出是规范的 SMARTS 和每个子图/SMARTS 出现的次数。

例如,如果输入分子是“CCO ”,那么规范结果是 {"C": 2, "O": 1, "CC": 1, "OC": 1, "CCO": 1} 和如果分子是“SCO ”,则规范结果为 {"C": 1, "S": 1, "O": 1, "CS": 1, "OC": 1, "SCO": 1 }.这些都是很小的例子。对于真正的分子,我得到了大约 500 个“单词”,它们看起来像“CC(C)O”、“CCCOCC”、“cn”和“cccc(c)O”。

将分子视为特征字符串和计数的集合意味着我应该能够使用文本搜索工具在文本级别进行比较,希望它们在化学级别上有意义。

例如,我可以使用 cosine similarity也许与 tf-idf权重并通过寻找相似的子模式找到相似的分子。使用上面的“CCO”和“SCO”示例,余弦相似度为 (2*1+1*1+1*1)/sqrt(2*2+1*1+1*1+1*1+1* 1)/sqrt(6*(1*1)) = 4/sqrt(8*6) = 0.58。

再举一个例子,如果我想找到包含“CCS”子结构的分子,那么我可以根据计数进行快速倒排索引搜索(分子必须至少有 2 个“C”,至少有 1 个“CS”,等等)在解决 NP 子图同构问题之前。也就是说,基于文本的方法可以作为过滤器来拒绝明显的不匹配。

我试图找出存在的文本解决方案,但这有点令人生畏。我不需要停用词,我不需要词干,我不在乎词序;我不需要很多现有的功能。我确实需要保留词向量的能力,因为知道“C”出现 2 次还是 3 次很重要。

哪种文本搜索引擎最适合我?它看起来像 Lucene,尤其是在 Mahout 中的工作。你能推荐看文档的哪些部分或相关教程吗?我发现的那些用于全文搜索,带有词干和其他我不需要的功能。

最佳答案

嗯......真的不知道什么是SMARTS,或者化学相似性实际上是如何工作的。如果要使用lucene,首先考虑使用solr。由于您的数据在图表中,您可以使用 solr 组件查看 neo4j。此外,这个问题是否与接近重复的文档更密切相关?为了帮助解决这个问题,有许多算法 LSH、Spotsigs、shingling 和 simhash。希望我能提供更多帮助。

关于graph - 为图/分子比较算法调整文本搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4689412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com