如何在Oracle中实现n-gram比较技术?
我有一个拥有数百万条记录的数据库。我希望将输入名称与数据库中现有的名称进行匹配。为此,我希望使用2-grams技术 是否有用于实现此功能的内置函数如何在Oracle中实现n-gram比较技术?,oracle,oracle11g,oracle10g,comparison,Oracle,Oracle11g,Oracle10g,Comparison,我有一个拥有数百万条记录的数据库。我希望将输入名称与数据库中现有的名称进行匹配。为此,我希望使用2-grams技术 是否有用于实现此功能的内置函数 我需要一个查询来返回所有匹配名称的分数。我不知道任何Oracle n-gram技术,但该软件包将允许您计算Jaro Winkler距离,这将为比较名称提供一个分数。或者您可以使用来比较文本和进行全文搜索(尽管这听起来像是对您的需求的过度使用)。UTL_匹配和Oracle文本中的算法不会给出所需的结果。I2-gram在使用java代码时给出了很好的结果
我需要一个查询来返回所有匹配名称的分数。我不知道任何Oracle n-gram技术,但该软件包将允许您计算Jaro Winkler距离,这将为比较名称提供一个分数。或者您可以使用来比较文本和进行全文搜索(尽管这听起来像是对您的需求的过度使用)。UTL_匹配和Oracle文本中的算法不会给出所需的结果。I2-gram在使用java代码时给出了很好的结果。但由于实际记录超过1000万条,使用java代码进行比较是不可行的。我希望oracle能为我做到这一点(或者我如何存储字符串以使比较花费最少的时间)。(如果Java使用特定的数据结构,那么您可以查看是否可以重新创建数据库中重复匹配所需的任何数据结构)。我不知道任何Oracle n-gram技术,但该软件包将允许您计算Jaro Winkler距离,这将为您比较名称提供一个分数。或者您可以使用来比较文本和进行全文搜索(尽管这听起来像是对您的需求的过度使用)。UTL_匹配和Oracle文本中的算法不会给出所需的结果。I2-gram在使用java代码时给出了很好的结果。但由于实际记录超过1000万条,使用java代码进行比较是不可行的。我希望oracle能为我做到这一点(或者我如何存储字符串以使比较花费最少的时间)。(如果Java使用特定的数据结构,那么您可以查看是否可以重新创建数据库中重复匹配所需的任何数据结构)。