在Lucene中对Twitter帖子进行标记

Rug*_*man 6 lucene twitter tokenize

我的问题简而言之:有没有人知道Lucene 的TwitterAnalyzerTwitterTokenizer

更详细的版本:

我想索引号在Lucene的鸣叫,并保持类似的条款@user#hashtag完好.StandardTokenizer不起作用,因为它丢弃了标点符号(但它还有其他有用的东西,比如保留域名,电子邮件地址或识别首字母缩略词).我怎样才能拥有一台分析仪,它可以完成StandardTokenizer所做的一切,但不会触及像@user和#hashtag这样的术语?

我目前的解决方案是在将推文发送到分析器之前对其进行预处理,并用其他字母数字字符串替换字符.例如,

String newText = newText.replaceAll("#", "hashtag");
newText = newText.replaceAll("@", "addresstag");
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种方法破坏了合法的电子邮件地址,但我可以忍受 这种方法有意义吗?

提前致谢!

AMAC

Tho*_*mas 5

StandardTokenizer和StandardAnalyzer基本上通过一个StandardFilter传递你的标记(它从标准标记中删除各种字符,比如单词的末尾),然后是一个小写过滤器(小写你的单词),最后是一个StopFilter.最后一个删除了无关紧要的词,如"as","in","for"等.

您可以轻松地开始实施的是实现您自己的分析器,该分析器执行与StandardAnalyzer相同的操作,但使用WhitespaceTokenizer作为处理输入流的第一个项目.

有关详细信息,请参阅此处的分析仪内部工作原理