gpt4 book ai didi

elasticsearch - 弹性 token 生成器集成到所有可能的单词组合中

转载 作者:行者123 更新时间:2023-12-03 00:04:49 27 4
gpt4 key购买 nike

给定输入“快速的棕色狐狸跳”,我想为单词创建每种可能的 token 组合。因此,示例字符串将被标记为

[
"quick", "quick brown", "quick fox", "quick jumped",
"brown", "brown quick", "brown fox", "brown jumped",
...,
"jumped quick", "jumped brown", "jumped fox", "jumped"
]

我可以使用 shingle tokeniser,但是它只能通过串联相邻的术语来创建新的 token ,而最终得到:
[
"quick", "quick brown", "quick brown fox", "quick brown fox jumped",
"brown", "brown fox", "brown fox jumped",
"fox", "fox jumped",
"jumped"
]

这是正确的一步,但不是我正在寻找的东西。

最佳答案

在您的评论中,您说这里的用例是获取出现在文档中的单词组合的集合。您可以使用标准 token 生成器,但仍然可以获取该信息。例如,假设您的文档带有“body”字段:

1: The quick brown fox jumps over the little dog

2: The little dog eats some food



因此,我认为您希望看到以下内容:

little dog: 2

the little: 2

the dog: 2

the eats: 1

...



然后您可以像这样查询:
{
"size": 0,
"aggs": {
"firstlevel": {
"terms": {
"field": "body"
},
"aggs": {
"secondlevel": {
"terms": {
"field": "body"
}
}
}
}
}
}

您会收到类似以下的响应:
"aggregations": {
"firstlevel": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 1,
"buckets": [
{
"key": "dog",
"doc_count": 2,
"secondlevel": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 1,
"buckets": [
{
"key": "dog",
"doc_count": 2
},
{
"key": "little",
"doc_count": 2
},
{
"key": "the",
"doc_count": 2
},
{
"key": "brown",
"doc_count": 1
}
...

您会看到在2个文档中同时出现了“little”和“dog”,在2个文档中同时出现了“the”和“dog”,并且在1个文档中同时出现了“dog”和“brown”。当然,仅当您想要 唯一的共存计数时,此方法才有效。

万一您真的需要像您描述的那样拥有 token ,我想您必须编写代码来做到这一点(可以从Elasticsearch使用Lucene的自定义 token 生成器,或者可能更容易地通过预处理步骤添加代码)是 keyword列表的字段)。

关于elasticsearch - 弹性 token 生成器集成到所有可能的单词组合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45864798/

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