haystack 接受可调用对象作为InMemoryDocumentStore的分词器,

7fhtutme  于 4个月前  发布在  其他
关注(0)|答案(3)|浏览(55)

#4695 中讨论

最初由 farhanhubble 于2023年4月18日发布
InMemoryDocumentStore 目前只接受通过参数 bm25_tokenization_regex: str = r"(?u)\b\w\w+\b" 进行分词的模式。底层的BM25支持 callable,尽管如此。移除这个限制将使更多样化的语料库正确地进行分词。我在尝试索引包含键值对(如:)的JSON文档时遇到了这个限制:

jfewjypa

jfewjypa1#

我们如何计划接受可调用对象?通过在类InMemoryDocumentStore中定义__call__方法,还是在分词中创建一个单独的类并定义__call__?或者有其他建议的方法吗?

lrl1mhuk

lrl1mhuk2#

如果我们将 bm25_tokenization_regex 重命名为类似 bm25_tokenize_with 以接受正则表达式或可调用对象,它将破坏向后兼容性。
如果我们引入一个新的参数,它会使事情变得混乱,我们需要确保两者不会同时被使用。

x6yk4ghg

x6yk4ghg3#

将尝试帮助解决这个问题:)

相关问题