最初由 farhanhubble 于2023年4月18日发布InMemoryDocumentStore 目前只接受通过参数 bm25_tokenization_regex: str = r"(?u)\b\w\w+\b" 进行分词的模式。底层的BM25支持 callable,尽管如此。移除这个限制将使更多样化的语料库正确地进行分词。我在尝试索引包含键值对(如:)的JSON文档时遇到了这个限制:
InMemoryDocumentStore
bm25_tokenization_regex: str = r"(?u)\b\w\w+\b"
callable
jfewjypa1#
我们如何计划接受可调用对象?通过在类InMemoryDocumentStore中定义__call__方法,还是在分词中创建一个单独的类并定义__call__?或者有其他建议的方法吗?
__call__
lrl1mhuk2#
如果我们将 bm25_tokenization_regex 重命名为类似 bm25_tokenize_with 以接受正则表达式或可调用对象,它将破坏向后兼容性。如果我们引入一个新的参数,它会使事情变得混乱,我们需要确保两者不会同时被使用。
bm25_tokenization_regex
bm25_tokenize_with
x6yk4ghg3#
将尝试帮助解决这个问题:)
3条答案
按热度按时间jfewjypa1#
我们如何计划接受可调用对象?通过在类
InMemoryDocumentStore
中定义__call__
方法,还是在分词中创建一个单独的类并定义__call__
?或者有其他建议的方法吗?lrl1mhuk2#
如果我们将
bm25_tokenization_regex
重命名为类似bm25_tokenize_with
以接受正则表达式或可调用对象,它将破坏向后兼容性。如果我们引入一个新的参数,它会使事情变得混乱,我们需要确保两者不会同时被使用。
x6yk4ghg3#
将尝试帮助解决这个问题:)