• 自然语言处理(基于预训练模型)02NLTK工具集


    NLTK是对英文文本数据进行处理的常用工具

    1 停用词

    1.1 查看停用词

    1. import nltk
    2. nltk.download('stopwords')
    3. from nltk.corpus import stopwords
    4. print(stopwords.words('english'))

    2 常用语料库

    2.1 未标注语料库

    2.1.1 找出古腾堡语料库中的emma原文

     gutenberg下载地址:NLTK Corpora (网页内搜索gutenberg)

    1. import nltk
    2. from nltk.corpus import gutenberg
    3. nltk.download('gutenberg')
    4. print(gutenberg.raw("austen-emma.txt"))

      

    2.2 人工标注语料库

    2.2.1 sentence_polarity.categories():返回褒贬类别列表,即 ['neg','pos']

    1. from nltk.corpus import sentence_polarity
    2. [(sentence,category)
    3. for category in sentence_polarity.categories()
    4. for sentence in sentence_polarity.sents(categories = category)]

    3 常用词典

    3.1 WordNet

            特色:定义了同义词集合,每个同义词集合由具有相同意义的词义组成。此外,WordNet还为每一个同义词集合提供了简短的释义,不同同义词集合之间还具有一定的语义关系。以下实验举dog为例:

            WordNet下载地址:NLTK Corpora (网页内搜索owm-1.4)

    3.1.1 返回dog的全部8个词义的synset

    syns = wordnet.synsets("dog") # 返回dog的全部18个词义的synset

     3.1.2 返回dog第一个词义的名称、定义以及样例

    1. firstName = syns[0].name()
    2. firstDefine = syns[0].definition()
    3. firstExample = syns[0].examples()

    3.1.3 返回dog第一个词义的上位同义词集合

    synsJh = syns[0].hypernyms()

    3.1.4 返回dog与cat的同义词集合间的Wu-Palmer相似度

    1. dog = wordnet.synset('dog.n.01')
    2. cat = wordnet.synset('cat.n.01')
    3. Wp = dog.wup_similarity(cat)

     

    3.2 SentiWordNet

            为WordNet中每个同义词集合人工标注了三个情感值,依次是褒义、贬义和中性。

             sentiwordnet下载地址:NLTK Corpora (网页内搜索sentiwordnet)

    3.2.1 查看good在形容词(a)下的第一号语义

    1. from nltk.corpus import sentiwordnet
    2. print(sentiwordnet.senti_synset('good.a.01'))

     

    4 常用自然语言处理工具集

    4.1 分句:将text分成若干个句子

    分句punkt下载地址:NLTK Corpora (网页内搜索punkt)

    4.1.1 引入text文本

    text = gutenberg.raw("austen-emma.txt")
    

    4.1.2 对text进行分句

    sentences = sent_tokenize(text) # 对text进行分句

    4.1.3 显示其中的一个句子

    print(sentences[100]) # 显示其中的一个句子

     

    4.2 标记解析

            主要是将单词和标点符号、空格等等拆分。

            继4.1.3:

    1. from nltk import word_tokenize
    2. from nltk.tokenize import sent_tokenize
    3. from nltk.corpus import gutenberg
    4. text = gutenberg.raw("austen-emma.txt")
    5. sentences = sent_tokenize(text)
    6. print(word_tokenize(sentences[100]))

    4.3 词性标记

            主要是根据词语所处的上下文,确定其具体的词性。

    4.3.1 如何使用pos_tag对单个单词进行词性标记

    1. from nltk import pos_tag
    2. from nltk import word_tokenize
    3. print(pos_tag(word_tokenize("i am cxk , i like playing basketball")))

     4.3.2 查询词性的标记意思

     ragsets下载地址:NLTK Corpora (网页内搜索tagsets)

    1. import nltk.help
    2. print(nltk.help.upenn_tagset('NN'))

     

  • 相关阅读:
    Vue3最佳实践 第八章 ESLint 与 测试 ( ESLint )
    【JVM内存区域及创建对象的过程】
    高质量床上用品类网站带手机端的pbootcms模板
    ASP.NET Core 6框架揭秘实例演示[34]:缓存整个响应内容
    c语言 2.0
    Ubuntu 17.10的超震撼声音权限
    开源的.Net 工作流引擎Elsa初试——创建工作流服务器和图形化工作流配置管理应用
    HTML5期末大作业:游戏网站设计与实现——基于bootstrap响应式游戏资讯网站制作HTML+CSS+JavaScript
    python七大爬虫程序
    Internet地址和域名
  • 原文地址:https://blog.csdn.net/weixin_54039182/article/details/127829923