是否有任何基于Java的智能单词标记器可以对句子中的相邻单词进行标记?

是否有任何基于Java的智能单词标记器可以对句子中的相邻单词进行标记?,java,tokenize,Java,Tokenize,我想标记一个有相邻单词的句子,如下所示: “这是我想说的一个样本串。” 在上面的示例中,有两种情况“samplestring”和“iwanttookenize”,其中出现了相邻的单词。你知道怎么用这些词做记号吗 对于这句话,理想的输出应该是(每行一个标记): 这 是 A. 样品 一串 那个 我 希望 到 标记化我建议使用如下单词列表 如果内存允许,将其打包到哈希集中并使用函数contains()(针对哈希比较进行了优化) 首先,使用StringTokenizer标记字符串。 对于每个令牌,检查其

我想标记一个有相邻单词的句子,如下所示:

“这是我想说的一个样本串。”

在上面的示例中,有两种情况“samplestring”和“iwanttookenize”,其中出现了相邻的单词。你知道怎么用这些词做记号吗

对于这句话,理想的输出应该是(每行一个标记): 这 是 A. 样品 一串 那个 我 希望 到
标记化

我建议使用如下单词列表 如果内存允许,将其打包到哈希集中并使用函数contains()(针对哈希比较进行了优化)

首先,使用StringTokenizer标记字符串。 对于每个令牌,检查其是否以列表中的一个单词开头和/或结尾。 如果它以该列表中的一个单词开头和结尾,并且没有留下任何字母 在适当的原始字符串中插入空格
然后再次标记。

你如何区分拼凑在一起的单词和合法包含两个单词的单词?我想说的是,如果没有确定什么是有效/无效的方法,这是不可能的。您需要对周围的文本进行上下文分析,以确定一个复合词是否“有效”,或者当词典中不存在一个词时,决定如何将其分解为单独的词,这也可能与上下文有关。您需要一些规则。您将如何区分是否应该将“不带”拆分为“不带”拆分?您的用例是什么?如果它是一个通用用例,您将需要自然语言处理工具。这是一个霍乌格的话题。从这里开始,你应该很有可能做到这一点:例如,“没有”比“没有”更经常出现在普通文本中,Twitter是一个特别困难的例子。您甚至不需要使用固定语言,但还必须考虑识别其他语言、首字母缩略词/首字母缩略词、拼写错误和合成词,因为您没有背景,因此无法解析这些词。对每一个都进行“拼写检查”是可行的,但在很多情况下,即使是一个非常好的拼写检查程序的第一个结果也不正确。即使是一个好的拼写检查器也可能无法处理“Iwanttookenize”