我试图为集体智能目的分析Drupal数据库的内容。在Lucene中编写Tokenizer的正确方法
到目前为止,我已经能够找出一个简单的例子来标记各种内容(主要是论坛帖子),并在删除停用词之后计算令牌。
的StandardTokenizer
与Lucene的供应应该能够来标记主机名和电子邮件,但内容可以也嵌入HTML,例如:
Pubblichiamo la presentazione di IBM riguardante DB2 per i vari sistemi operativi
Linux, UNIX e Windows.\r\n\r\nQuesto documento sta sulla piattaforma KM e lo potete
scaricare a questo <a href=\'https://sfkm.griffon.local/sites/BSF%20KM/BSF/CC%20T/Specifiche/Eventi2008/IBM%20DB2%20for%20Linux,%20UNIX%20e%20Windows.pdf\' target=blank>link</a>.
这是这样严重符号化:
pubblichiamo -> 1
presentazione -> 1
ibm -> 1
riguardante -> 1
db2 -> 1
vari -> 1
sistemi -> 1
operativi -> 1
linux -> 1
unix -> 1
windows -> 1
documento -> 1
piattaforma -> 1
km -> 1
potete -> 1
scaricare -> 1
href -> 1
https -> 1
sfkm.griffon.local -> 1
sites -> 1
bsf -> 1
20km/bsf -> 1
cc -> 1
20t/specifiche/eventi2008/ibm -> 1
20db2 -> 1
20for -> 1
20linux -> 1
20unix -> 1
20e -> 1
20windows.pdf -> 1
target -> 1
blank -> 1
link -> 1
什么我想保留链接在一起,并去除无用的html标签(如<pre>
或<strong>
)。
我应该写一个过滤器还是不同的Tokenizer? Tokenizer应该替换标准的还是我可以将它们混合在一起?最难的方法是采取StandardTokenizerImpl
并将其复制到一个新文件中,然后添加自定义行为,但现在我不想在Lucene实现中太深入(逐渐学习)。
也许已经有类似的实现,但我一直无法找到它。
编辑: 看着StandardTokenizerImpl
让我觉得,如果我要它通过修改实际执行它并不比使用法或柔性和自己做这么方便的扩展..