gpt4 book ai didi

python - pylucene 的自定义分词器,仅根据下划线对文本进行分词(保留空格)

转载 作者:行者123 更新时间:2023-11-30 23:36:34 28 4
gpt4 key购买 nike

我是 pylucene 的新手,我正在尝试构建一个自定义分析器,它仅根据下划线标记文本,即它应该保留空格。示例:“Hi_this is_awesome”应标记为 [“hi”、“this is”、“awesome”] 标记。

从各种代码示例中,我了解到我需要重写 CustomTokenizer 的incrementToken 方法并编写一个 CustomAnalyzer,其中 TokenStream 需要使用 CustomTokenizer 后跟 LowerCaseFilter 来实现相同的目的。

我在实现incrementToken方法和连接点时遇到问题(分词器如何使用,通常分析器依赖于TokenFilter,而TokenFilter又依赖于TokenStreams),因为pylucene上可用的文档很少。

最佳答案

通过创建一个新的 tokenzier 最终使其工作,该 tokenzier 将除下划线之外的每个字符视为生成的标记的一部分(基本上下划线成为分隔符)

class UnderscoreSeparatorTokenizer(PythonCharTokenizer):  def __init__(self, input):    PythonCharTokenizer.__init__(self, input)  def isTokenChar(self, c):    return c != "_"class UnderscoreSeparatorAnalyzer(PythonAnalyzer):  def __init__(self, version):    PythonAnalyzer.__init__(self, version)  def tokenStream(self, fieldName, reader):    tokenizer = UnderscoreSeparatorTokenizer(reader)    tokenStream = LowerCaseFilter(tokenizer)    return tokenStream

关于python - pylucene 的自定义分词器,仅根据下划线对文本进行分词(保留空格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16432969/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com