marklogic - 如何使用标记化来分解单词和数字

标签 marklogic

是否可以为字段配置自定义标记化规则,将包含字母和数字的单词分解为单独的标记?例如,我希望将字符串“50pc”拆分为两个标记“50”和“pc”。

我可以为每个数字字符创建一个覆盖,将其视为一个符号,但这会给我三个单词“5”、“0”和“pc”,这不是我想要的。

是否可以使用标记化来做到这一点,或者我是否需要预处理数据?

最佳答案

Tokenizer overrides被设计成分割形式,如 10x4进入104 。没有边界字符的分割一开始看起来是不可能的。但是......您可以使标记器覆盖特定于字段的标记器。所以这是一个(未经测试的)想法。

  • 创建一个使用 admin:database-add-field-tokenizer-override 的字段将数字字符分类为 removepunctuation 。根据需要配置字段根、包含和排除。
  • 创建另一个字段,对字母字符执行相同的操作。
  • 保留普通的单词查询字段。

使用该配置,您应该仍然可以使用 cts:word-query匹配50pc ,以及使用 cts:field-word-query匹配 50pc .

但是预处理可能仍然是处理 50pc 的最佳方法。这样您就可以在标记中包含单位,如 <pieces xmlns="http://example.com/2014/units" value="50">50pc</pieces> - 或类似的规定。从长远来看,这可能会给您带来更大的灵 active 。

关于marklogic - 如何使用标记化来分解单词和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26914772/

相关文章:

json - 从 XQuery 重建和转换 JSON 对象

marklogic - 使用 MarkLogic mlcp 拆分文档

marklogic - ms-excel 兼容的 csv 文件,代表 MarkLogic 目录中的所有文档

json - 从 XML 规范模型返回 JSON 的策略

rest - 使用 MarkLogic REST API 进行文档版本控制

machine-learning - RDF 存储上的机器学习来检测模式

java - 在 MarkLogic 中保存带有嵌入二进制附件列表的 JSON 文档

xquery - 避免 XDMP-EXPNTREECACHEFULL 和加载文档

docker - 在Ubuntu 16.04中创建Marklogic Docker实例以暴露端口

cors - 即使遵循 2 种方法,“访问控制允许来源”错误