NLTK使用汇总_bom用量计算公式

NLTK使用汇总_bom用量计算公式0.如何离线安装NLTK1.LookupError:Resourcenotfound.2.分句、分词和停用词3.词性标注和词形还原4.分句5.N-gram

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

0. 如何离线安装NLTK

  1. 使用pip安装NLTK,代码如下所示(需要注意的是这只是第一步):
pip install nltk

Jetbrains全家桶1年46,售后保障稳定

  1. 得到NLTK的存储目录,代码和截图如下所示:
import nltk
print(nltk.data.path)

在这里插入图片描述

  1. 下载nltk_data压缩包,链接为https://download.csdn.net/download/herosunly/15683254,并将其解压到上述存储目录中的一个,如/home/anaconda3/nltk_data,则将nltk_data压缩包移动到/home/anaconda3路径(即上述某个路径的上一级路径)下,使用unzip命令进行解压,命令如下图所示:
unzip nltk_data.zip

1. LookupError: Resource not found.

  例如在运行下列代码时出现错误:

from nltk.tokenize import word_tokenize
tokenized_word = word_tokenize('I am a good boy')

在这里插入图片描述
在这里插入图片描述

  • 解决方法一:
import nltk
nltk.download('punkt')

但可能会出现远程主机强迫关闭了一个现有的连接的错误,此时我们就需要使用其他办法。

  • 解决方法二:
       请参考上文0. 如何离线安装NLTK的内容。

2. 分句、分词和停用词

  • 分句
from nltk import sent_tokenize
sents = sent_tokenize('ZhangSan is a boy. And LiSi is a girl')
print(sents)

  需要注意的是,只能对句号后有空格的句子进行分割。

  • 分词
from nltk import word_tokenize
tokenized_word = word_tokenize('I love a good boy')
print(tokenized_word)

  可以分句之后再进行分词。

  • 停用词
from nltk.corpus import stopwords
stop_words = set(stopwords.words("english"))

3. 词性标注和词形还原

  词形还原与词干提取类似, 但不同之处在于词干提取经常可能创造出不存在的词汇,词形还原的结果是一个真正的词汇。所以我们这里只介绍词形还原。但是词性还原又取决于词性,所以我们需要借助词性标注得到的结果。

3.1 词性标注

import nltk
text = nltk.word_tokenize('what does the fox say')
print(text)
print(nltk.pos_tag(text))
 
结果为:
['what', 'does', 'the', 'fox', 'say']
输出是元组列表,元组中的第一个元素是单词,第二个元素是词性标签
[('what', 'WDT'), ('does', 'VBZ'), ('the', 'DT'), ('fox', 'NNS'), ('say', 'VBP')]

Number
Tag
Description
1. CC Coordinating conjunction
2. CD Cardinal number
3. DT Determiner
4. EX Existential there
5. FW Foreign word
6. IN Preposition or subordinating conjunction
7. JJ Adjective
8. JJR Adjective, comparative
9. JJS Adjective, superlative
10. LS List item marker
11. MD Modal
12. NN Noun, singular or mass
13. NNS Noun, plural
14. NNP Proper noun, singular
15. NNPS Proper noun, plural
16. PDT Predeterminer
17. POS Possessive ending
18. PRP Personal pronoun
19. PRP$ Possessive pronoun
20. RB Adverb
21. RBR Adverb, comparative
22. RBS Adverb, superlative
23. RP Particle
24. SYM Symbol
25. TO to
26. UH Interjection
27. VB Verb, base form
28. VBD Verb, past tense
29. VBG Verb, gerund or present participle
30. VBN Verb, past participle
31. VBP Verb, non-3rd person singular present
32. VBZ Verb, 3rd person singular present
33. WDT Wh-determiner
34. WP Wh-pronoun
35. WP$ Possessive wh-pronoun
36. WRB Wh-adverb

3.2 词性还原(Lemmatize)

# { Part-of-speech constants
ADJ, ADJ_SAT, ADV, NOUN, VERB = "a", "s", "r", "n", "v"
# }
from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize('playing', pos="v"))
print(lemmatizer.lemmatize('playing', pos="n"))
print(lemmatizer.lemmatize('playing', pos="a"))
print(lemmatizer.lemmatize('playing', pos="r"))
''' 结果为: play playing playing playing '''

4. 分句

  由于word2vec本质上是对每个句子求词向量,所以我们需要对文章划分成句子。

from nltk.tokenize import sent_tokenize
text="""Hello Mr. Smith, how are you doing today? The weather is great, and city is awesome. The sky is pinkish-blue. You shouldn't eat cardboard"""
tokenized_text = sent_tokenize(text)
print(tokenized_text)

5. N-gram

nltk.ngrams(
    sequence,
    n,
    pad_left=False,
    pad_right=False,
    left_pad_symbol=None,
    right_pad_symbol=None,
)

如果是字符串想得到N-gram字符串,只需使用map函数即可,具体代码如下:

ngram = nltk.ngrams(s, n) // s is string, n is gram
ngram = map(''.join, ngram)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/213509.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 使用 EasyPOI 优雅导出Excel模板数据(含图片)

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:星悬月 blog.csdn.net/u012441819/article/details/96828044 E…

  • vue双向绑定原理面试题_面试可以记笔记吗

    vue双向绑定原理面试题_面试可以记笔记吗2019年6月6号,为了爱情,我离开工作了一年多的广州来到了杭州这个互联网城市。开始我的前端面试之旅…放下拧螺丝的扳手,开始造起了飞机…面试的第一家,一开始就问Vue双向绑定怎么实现。一脸蒙蔽,之前看过源码,但是没有深入研究,只回答出了使用Object.definePropertyObject.defineProperty(obj,prop,{//…g…

    2022年10月17日
  • postfix邮箱_用post方式发送文件

    postfix邮箱_用post方式发送文件一、首先关闭防火墙[root@localhost~]#systemctlstopfirewalld[root@localhost~]#setenforce0[root@localhost~]#getenforcePermissive二、搭建postfix[root@localhost~]#yuminstallpostfix三、配置postfix[root@local…

  • 启动了韩剧_startactivity

    启动了韩剧_startactivity一般来说当我们从launcher中启动一个应用进入到ActivityA中,系统会为这个应用生成一个新任务堆栈并置于前台,ActivityA被放入栈底,之后从ActivityA启动另一个ActivityB,如果不设置什么附加属性,ActivityB默认也放到和ActivityA这个堆栈中,这样当你按返回时,B出栈,A呈现出来了,这个应该很好理解。那现在假如ActivityA启动一个Service…

  • centos 日志审计_CentOS7 – 审计日志[通俗易懂]

    centos 日志审计_CentOS7 – 审计日志[通俗易懂]1、auditctl:即时控制审计守护进程的行为的工具,比如如添加规则等等。audtitctl-l#查看规则auditctl-D#清空规则2、aureport:查看和生成审计报告的工具。aureport-l#生成登录审计报告3、ausearch:查找审计事件的工具ausearch-i-p40964、autrace:一个用于跟踪进程的命令。autrace-r/u…

  • 归一化、标准化、正则化公式相关小记「建议收藏」

    归一化、标准化、正则化公式相关小记「建议收藏」特征缩放面对特征数量较多的时候,保证这些特征具有相近的尺度(无量纲化),可以使梯度下降法更快的收敛。这两张图代表数据是否均一化的最优解寻解过程(左边是未归一化的),从这两张图可以看出,数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解在前边讲梯度下降的时候咱们也提到过,一般在最优化前会加归一化操作机器学习最优化算法之梯度下降_RayChiu757374816的博客-CSDN博客原因就是这样会减少数据模型的震荡,以最快的速度达到最优化。缩放的方法…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号