spelling
模块¶
见 correcting errors in user queries .
此模块包含用于更正用户查询中输入错误的帮助程序函数。
校正器对象¶
-
class
whoosh.spelling.
Corrector
¶ 拼写更正对象的基类。具体的子类应该实现
_suggestions
方法。-
suggest
(text, limit=5, maxdist=2, prefix=0)¶ - 参数
text -- the text to check. 这个词会 not 添加到建议中,即使它出现在单词图中。
limit -- 只回复这么多建议。如果字段中没有足够的术语
maxdist
对于给定的单词,返回的列表将短于此数字。maxdist -- 从给定单词到要查看的最大编辑距离。大于2的值不是非常有效或有效。
prefix -- require suggestions to share a prefix of this length with the given word. This is often justifiable since most misspellings do not involve the first letter of the word. Using a prefix dramatically decreases the time it takes to generate the list of words.
-
-
class
whoosh.spelling.
ReaderCorrector
(reader, fieldname, fieldobj)¶ 根据读者中字段的内容建议更正。
按编辑距离排列建议,然后按最高频率到最低频率排列建议。
-
class
whoosh.spelling.
MultiCorrector
(correctors, op)¶ 合并子更正器列表中的建议。
QueryCorrector对象¶
-
class
whoosh.spelling.
QueryCorrector
(fieldname)¶ 用于更正用户查询中单词的对象的基类。
-
correct_query
(q, qstring)¶ 返回A
Correction
对象,表示给定查询的正确形式。- 参数
q -- 原文
whoosh.query.Query
要更正的树。qstring -- 原始用户查询。如果原始查询字符串不可用,则此值可能为“无”,在这种情况下,
Correction.string
属性也将为“无”。
- 返回类型
-
-
class
whoosh.spelling.
SimpleQueryCorrector
(correctors, terms, aliases=None, prefix=0, maxdist=2)¶ 基于字段名到的映射的简单查询更正器
Corrector
对象和("fieldname", "text")
要更正的元组。查询中出现在术语元组列表中的术语将使用适当的更正器进行更正。- 参数
correctors -- 将字段名映射到的字典
Corrector
物体。terms -- 一系列
("fieldname", "text")
表示要更正的项的元组。aliases -- 将查询中的字段名映射到字段名以获取拼写建议的词典。
prefix -- 建议的替换词必须与原始词共享这个数量的初始字符。甚至增加到
1
可以大大加快建议的速度,而且可能是合理的,因为拼写错误很少涉及单词的第一个字母。maxdist -- 原始单词和任何建议之间允许的“编辑”的最大数目(插入、删除、替换或换位)。值高于
2
可能是缓慢的。
-
class
whoosh.spelling.
Correction
(q, qstring, corr_q, tokens)¶ 表示用户查询字符串的正确版本。具有以下属性:
query
被纠正的
whoosh.query.Query
对象。string
已更正的用户查询字符串。
original_query
原版
whoosh.query.Query
已更正的对象。original_string
原始用户查询字符串。
tokens
表示已更正单词的标记对象列表。
您也可以使用
Correction.format_string()
方法使用whoosh.highlight.Formatter
班级。例如,要将更正后的查询字符串显示为HTML,并强调更改后的单词:from whoosh import highlight correction = mysearcher.correct_query(q, qstring) hf = highlight.HtmlFormatter(classname="change") html = correction.format_string(hf)