word是什么意思

word是什么意思,第1张

释义1:英文单词

n单词,歌词,台词;(说的)话;诺言;命令

vt措辞,用词;用言语表达

vi讲话

释义2:微软文字处理软件

Microsoft Office Word是微软公司的一个文字处理器应用程序。

Word给用户提供了用于创建专业而优雅的文档工具,帮助用户节省时间,并得到优雅美观的结果。

一直以来,Microsoft Office Word 都是最流行的文字处理程序。

作为 Office 套件的核心程序, Word 提供了许多易于使用的文档创建工具,同时也提供了丰富的功能集供创建复杂的文档使用。哪怕只使用 Word 应用一点文本格式化 *** 作或处理,也可以使简单的文档变得比只使用纯文本更具吸引力。

释义3:编程语言中的一种数据类型

WORD是无符号的短整型,且占2个字节

释义4:Java分布式中文分词组件

word分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名等未登录词。能通过自定义配置文件来改变组件行为,能自定义用户词库、自动检测词库变化、支持大规模分布式环境,能灵活指定多种分词算法,能使用refine功能灵活控制分词结果,还能使用词性标注、同义标注、反义标注、拼音标注等功能。同时还无缝和Lucene、Solr、ElasticSearch、Luke集成。

mysql默认不支持中文全文索引,不过对于MyISAM表可以使用外部插件mysqlcft来建立中文全文索引。若是对“mysqlcft”插件不了解,可以百度“mysqlcft”会有详细的资料的。

import re

import collections

import pandas as pd

from sklearnfeature_extractiontext import TfidfVectorizer, CountVectorizer

#为避免出问题,文件名使用全路径

data = pdread_csv('XXXcsv')

trainheadlines = []

for row in range(0, len(dataindex)):

trainheadlinesappend(' 'join(str(x) for x in datailoc[row, m:n]))

#上面的m:n代表取那一列,或者那几列。

advancedvectorizer = TfidfVectorizer(

min_df=0, max_df=1, max_features=20000, ngram_range=(1, 1))

advancedtrain = advancedvectorizerfit_transform(trainheadlines)

print(advancedtrainshape)

好处上面已经说了。最大的优点其实就是检索速度快,对服务器的负荷降低

缺点,如果说有的话,就是需要进行填充

上一次填充后,你增加的内容,直到你再次增量填充,否则是检索不到的。

你可以根据自己更新内容的频率设置调度来自动执行。

第一,使用N_Gram方式建立数据库的全文检索,要求可以对导入句子进行全文检索方式的模糊查询。第二, 能够统计出检索内容所耗时间。第三, 支持中英,和英中两种方式的检索。第四, 支持导入句子功能,对指定格式的双语文本文档进行导入。

在有搜索引擎之前,我们查文档常使用顺序匹配。我们需要在文档中顺序扫描,找到完全匹配的子句。

有的情况精确匹配比搜索引擎的查找有优势,比如这样的内容”chinese:1388838245“,如果用户输入”883“希望搜到这则内容,在常规的情况下是搜不到的。

这是因为在有了搜索引擎后,我们对查询语句做的处理就不一样了。我们通常会先分词,然后查找对应的词条索引,最后得到评分由高到低的文档列表。上面的例句在常规的分词情况下,没有也不可能有”883“这个词条,因此搜索不到这则内容。

我一度以为没法实现完全匹配了,直到一个硬需求的出现。花了一天时间,把完全匹配用搜索引擎的思维整理出来。

简要描述实现思路,字段按一字一词的形式分词,再利用短语查询来搜索。

ES中,可以实现一字一词的的分词器是NGram。

它其实是一个上下文相连续字符的分词工具,可以看官方文档中的例子。当我们将它 min_gram 和 max_gram 都设为1时,它会按一字一词的形式分词。比如“shinyke@189cn”,分词的结果是["s" , "h" , "i" , "n" , "y" , "k" , "e" , "@" , "1" , "8" , "9" , "" , "c" , "n" ]。

<pre name="code" class="javascript">/index_name/    

{  

  "settings": {  

    "analysis": {  

      "analyzer": {   

        "charSplit": {  

          "type": "custom",  

              "tokenizer": "ngram_tokenizer"  

        }  

      },  

     "tokenizer": {  

           "ngram_tokenizer": {  

             "type": "nGram",  

             "min_gram": "1",  

             "max_gram": "1",  

             "token_chars": [  

               "letter",  

               "digit",  

               "punctuation"  

             ]  

           }  

        }  

      }  

   }  

}

以上语句中,构建了一个名为“charSplit”的分析器。它使用一个名为“ngram_tokenizer”的Ngram分词器。

可以用如下语句测试charSplit分析器,可以看到一字一词的效果:

curl -POST >"测试语句"

把这个分析器在mapping里用起来:

   

"sender": {  

   "type": "string",  

   "store": "yes",  

   "analyzer": "charSplit",  

   "fields": {  

     "raw": {  

       "type": "string",  

       "index": "not_analyzed"  

     }  

   },  

  

接下来就可以用match_phrase来实现完全匹配查询。

/{index_name}/{type_name}/_search  

{  

  "query": {  

    "multi_match": {  

      "query": "@189cn",  

      "type": "phrase", //type指定为phrase  

      "slop": 0,        //slop指定每个相邻词之间允许相隔多远。此处设置为0,以实现完全匹配。  

      "fields": [  

        "sender"  

      ],  

      "analyzer": "charSplit", //分析器指定为charSplit  

      "max_expansions": 1        

    }  

  },  

  "highlight": {   //测试高亮是否正常  

    "pre_tags": [  

      "<b>"  

    ],  

    "post_tags": [  

      "</b>"  

    ],  

    "fragment_size": 100,  

    "number_of_fragments": 2,  

    "require_field_match": true,  

    "fields": {  

      "sender": {}  

    }  

  }  

}

phrase查询原始的作用是用来做短语查询,它有一个重要的特点:有顺序。我们利用了它匹配的有序性,限制slop为0,则可实现完全匹配查询。

以上语句返回的结果是:

{  

  

    "took": 18,  

    "timed_out": false,  

    "_shards": {  

        "total": 9,  

        "successful": 9,  

        "failed": 0  

    },  

    "hits": {  

        "total": 1,  

        "max_score": 040239456,  

        "hits": [  

            {  

                "_index": "index_name",  

                "_type": "type_name",  

                "_id": "AU9OLIGOZN4dLecgyoKp",  

                "_score": 040239456,  

                "_source": {  

                    "sender": "18977314000 <18977314000@189cn>, 李X <18977314000@189cn>, 秦X <18977314000@189cn>, 刘X <18977314000@189cn>"  

                },  

                "highlight": {  

                    "sender": [  

                        "18977314000 <18977314000<b>@</b><b>1</b><b>8</b><b>9</b><b></b><b>c</b><b>n</b>>, 李X <18977314000<b>@</b><b>1</b><b>8</b><b>9</b><b></b><b>c</b><b>n</b>>, 秦纯X <18977314000<b>@</b><b>1</b><b>8</b><b>9</b><b></b><b>c</b><b>n</b>>, 刘X <189773140"  

                    ]   

               }  

            }  

        ]  

    }  

  

}

到此,就实现了完全匹配查询。实际环境中用NGram做一字一词分析器的时候会更细致一些,比如有一些字符需要用stop word过滤掉。这些细节可以根据实际需要在构造分析器时添加filter实现,在此不做赘述。

以上就是关于word是什么意思全部的内容,包括:word是什么意思、现在mysql自带全文检索 是否支持中文、Python编程实现csv文件某一列的词频统计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10078777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存