我大约有15,000个抓取的网站,其正文存储在elasticsearch索引中。我需要获得在所有这些文本中使用的前100个最常用的三个词短语:
像这样:
Hello there sir: 203
Big bad pony: 92
First come first: 56
[...]
我是新来的。我研究了术语向量,但它们似乎适用于单个文档。因此,我认为这将是术语向量和聚合与n元语法分析的结合。但是我不知道如何去实现它。任何指针都会有所帮助。
我当前的映射和设置:
{
"mappings": {
"items": {
"properties": {
"body": {
"type": "string",
"term_vector": "with_positions_offsets_payloads",
"store" : true,
"analyzer" : "fulltext_analyzer"
}
}
}
},
"settings" : {
"index" : {
"number_of_shards" : 1,
"number_of_replicas" : 0
},
"analysis": {
"analyzer": {
"fulltext_analyzer": {
"type": "custom",
"tokenizer": "whitespace",
"filter": [
"lowercase",
"type_as_payload"
]
}
}
}
}
}
您正在寻找的被称为 带状疱疹 。带状疱疹就像“单词n-
gram”:字符串中多个项的序列组合。(例如,“我们所有人都生活”,“所有人都生活”,“住在一个”,“一个黄色”,“一个黄色潜水艇”)
在这里看看:https :
//www.elastic.co/blog/searching-with-
shingles
基本上,您需要一个带有带状板分析器的字段,该分析器仅生成三项带状板:
弹性博客文章配置,但具有:
"filter_shingle":{
"type":"shingle",
"max_shingle_size":3,
"min_shingle_size":3,
"output_unigrams":"false"
}
在将带状疱疹分析器应用于相关字段(如博客文章中)并 重新索引数据之后
,您应该能够在字段上发出返回简单术语汇总的查询,body
以查看前一百个3 -词词组。
{
"size" : 0,
"query" : {
"match_all" : {}
},
"aggs" : {
"three-word-phrases" : {
"terms" : {
"field" : "body",
"size" : 100
}
}
}
}
问题内容: 我有一个历史记录表,该表存储了用户对延缓帖子执行的所有操作 我想要的是让最后三个用户完成所有操作 问题答案: 假设是一列, SQLFiddle演示
问题内容: 我在Pandas数据框的一栏中有文字评论,我想用频率计数来计算N个最频繁出现的单词(整列- 不在单个单元格中)。一种方法是使用计数器,通过遍历每一行来对单词进行计数。有更好的选择吗? 代表性数据。 问题答案: 我很确定会给您您想要的东西(您可能必须在调用most_common之前从计数器结果中删除一些非单词)
我是新的MongoDB,并试图从数据库检索单个文档的大小。 数据库名为“”集合名为“” 我试过: 我也尝试过: 但它只返回。如何获取文档的大小?非常感谢。
嗨,我从javascript和react-native开始,我花了几个小时试图解决这个问题。有人能告诉我如何从firestore收集处获得所有文件吗? 我一直在尝试这个: 日志1打印所有对象(一个接一个),但日志2没有定义,为什么?
我想知道如何使用Lucene获取单词在文档中的位置我已经生成了索引文件,我想从索引中提取一些信息,如索引的单词,单词在文档中的位置等
问题内容: 我之前在这里问过类似的问题,但是我需要知道这种小的调整是否可能。我想将字符串缩短为100个字符,并使用它来做到这一点。但是,这只需要前100个字符,并不在乎是否分解一个单词。 有什么方法可以占用一个字符串的前100个字符,但要确保您不会打断一个单词? 例: 有没有办法使用PHP做到这一点? 问题答案: 您需要做的就是使用: