jieba ChineseAnalyzer的問題

9bfwbjaz  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(100)

想請問:
我使用ChineseAnalyzer for Whoosh 搜索引擎,當writer.add_document裡面的content字不多的時候,設定的keyword會跟content完全符合才會被列出來; 但當content字多到一定程度的時候(我用bog文章),content的字只要有部分和keyword一樣就會被列出來。不知道該怎麼處理? 是預設的模式有變化嗎? 看了Whoosh說明文件也不太懂,謝謝。

798qvoo8

798qvoo81#

简单改下:
class ChineseTokenizer(Tokenizer):

应该就可以实现。
if len(context) < MIN_CONTEXT:
token = Token()
token.text = context
token.pos = 0
...
yield token
else:
words = jieba.tokenize(text, mode="search")
token = Token()
for (w,start_pos,stop_pos) in words:
if not accepted_chars.match(w) and len(w)<=1:
continue
token.original = token.text = w
token.pos = start_pos
token.startchar = start_pos
token.endchar = stop_pos
yield token

r3i60tvu

r3i60tvu2#

想到可以沿用原來的程式,最後面把print hit.highlights("content")的結果中"<.....>XXX"的XXX抓出來和keyword比對,如果一樣就是真的一樣。只是這樣就跟原來ChineseAnalyzer的效果不大一樣??

相关问题