java - 对于 Java,是否有一个与我想要的完全匹配的分词器?

标签 java text nlp tokenize

我想标记文本,但不只是用空格分隔。

有些东西,比如专有名称,我只想设置一个标记(例如:“Renato Dinhani Conceição”)。另一种情况:百分比(“60 %”)而不是分成两个标记。

我想知道是否有来自某个库的 Tokenizator 可以提供高度定制化?如果没有,我会尝试自己编写,如果有一些接口(interface)或实践可以遵循。

并不是所有的东西都需要被普遍认可。示例:我不需要重新识别中文字母表。

我的申请是大学申请,主要针对葡萄牙语。只有名称、地点和类似的东西会来自其他语言。

最佳答案

我会尝试从规则的角度而不是标记化的角度来解决这个问题。这将是最大的挑战 - 创建一个全面的规则集来满足您的大多数情况。

  • 用人类术语定义哪些单元不应根据空格拆分。名字例子就是一个。
  • 对于空格拆分的每一个异常(exception),创建一组规则来识别它。对于名称示例:2 个或更多个连续的大写单词,中间有或没有语言特定的非大写名称单词(如“de”)。
  • 将每个规则实现为自己的类,可以在循环时调用。
  • 根据空格拆分整个字符串,然后循环它,跟踪之前出现的标记和当前出现的标记,为每个标记应用您的规则类。

规则示例 isName:

  • 循环 1:(例如: isName = false
  • 循环 2:“Renato isName = true
  • 循环 3:Dinhani isName = true
  • 循环 4:Conceição"). isName = true
  • 循环 5:另一个 isName = false

留给你:(eg.:, "Renato Dinhani Conceição")., Another

关于java - 对于 Java,是否有一个与我想要的完全匹配的分词器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6863790/

相关文章:

java - 如何使用eclipse生成多个包的可执行jar文件

java - 异常 : Already Connected, HttpsUrlConnection

text - 对于 ColdFusion cfqueryparam,您将哪种 CFSQLType 用于文本?

text - JAPE规则句子包含多种情况

python - Spacy:如何获得所有描述名词的词?

java - ZipInputStream 和 JarInputStream 的 ZipEntry 大小不一致

java - 我有一个java二十一点应用程序。如何使其成为服务器客户端?

ruby - 将 ruby​​ 循环到文本文件

objective-c - 使用 NSLayoutManager 停止文本换行

machine-learning - Apple 如何查找电子邮件中的日期、时间和地址?