0

我想知道是否有一些基于 Java 的语言实用程序可以帮助执行以下字符串标记化或分词和消除噪音

所以对于一个字符串

Friday's meeting is wonderful

预期结果将是一系列单词

Friday meeting wonderful

和被删除的地方

对于字符串

I went to the farmer's market 

预期结果将是单词

went farmer market

I, to, the, and 被删除的地方

4

5 回答 5

1

这个问题没有通用的解决方案,因为(尤其是)你对“噪音”的概念定义不明确......而且很可能与其他人不同。

如果我正在实施这个(并且我同意你的“噪音”概念),我会:

  1. 使用空格和可接受的标点符号作为分隔符进行标记。
  2. 剥离引号
  3. 剥离撇号
  4. 规范化连字符(也许只是删除连字符)
  5. 使用停用词过滤器去除“噪音”词。

简而言之,您将不得不编写大量代码来执行此操作。


当然,剥离“噪音”词是剥离与文本的适当语义分析相关的信息。(“我击球”和“你击球”说的是不同的东西。)

于 2012-06-04T01:15:02.150 回答
1

我以前玩过斯坦福解析器。它是一个 NLP 引擎,对于大多数用途而言具有足够好的结果。它会给你很大的权力来具体选择你想要保留的单词。

在线演示

于 2012-06-04T03:31:32.340 回答
0

也许看看这个?我也知道有一个 String Tokenizer 类,但这可能很难用于您的目的。

http://docs.oracle.com/javase/7/docs/api/java/text/Normalizer.html

于 2012-06-04T00:28:23.427 回答
0

我不知道有什么实用程序可以开箱即用,但可能会看看这个 -从 java 中的另一个字符串中删除字符串。希望这有点帮助。

于 2012-06-04T00:40:06.027 回答
-2

可能这不是最好的解决方案,但您可以使用 String 类的 replaceAll 方法,替换空字符串的噪音。

例如,类似:line.replaceAll("'s", "");

于 2012-06-04T00:22:45.427 回答