簡體   English   中英

Python Whoosh不接受單個字符

[英]Python Whoosh not accepting single character

我正在嘗試解析具有文本加數字的查詢。

示例:Apple iphone 6結果:

  Results for And([Term('title', u'apple'), Term('title', u'iphone')])

而蘋果iphone 62會導致:

  Results for And([Term('title', u'apple'), Term('title', u'iphone'), Term('title', u'62')])

為什么不接受一位數字?

默認情況下,所有帶有單字符的單詞在Whoosh中均被視為停用詞,並被忽略。 這意味着將忽略所有字母和數字。

停用詞是在處理自然語言數據(文本)之前或之后過濾掉的詞。 (參考文獻)

您可以檢查StopFilter默認情況下是否將minsize = 2添加到預定義集中。

class whoosh.analysis.StopFilter(
        stoplist=frozenset(['and', 'is', 'it', 'an', 'as', 'at', 'have', 'in', 'yet', 'if', 'from', 'for', 'when', 'by', 'to', 'you', 'be', 'we', 'that', 'may', 'not', 'with', 'tbd', 'a', 'on', 'your', 'this', 'of', 'us', 'will', 'can', 'the', 'or', 'are']),
        minsize=2,
        maxsize=None,
        renumber=True,
        lang=None
        )

因此,您可以通過重新定義架構並刪除StopFilter或將其與minsize = 1使用來解決此問題:

from whoosh.analysis import StandardAnalyzer
schema = Schema(content=TEXT(analyzer=StandardAnalyzer(stoplist=None)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM