当前位置: 首页 > 后端技术 > Python

NLTK简单介绍与数据清洗

时间:2023-03-25 22:59:24 Python

NLTK历史悠久的英文分词工具#importwordsegmentationmodulefromnltk.tokenizeimportword_tokenizefromnltk.textimportTextinput='''她身上有一种与长相无关的敏感和美。她是一个值得倾听的人,她的话很容易记在心里。'''tokens=word_tokenize(input)#printthefirst5wordsprint(tokens[:5])#convertthewordsinlowercaseThereandthere应该算同一个单词tokens=[w.lower()forwintokens]#创建一个Text对象t=Text(tokens)#统计一个单词出现的次数t.count('beauty')#计算单词t的位置。index('beauty')#画出出现次数最多的前8个词#需要安装matplotlibpipinstallmatplotlibt.plot(8)['There','were','a','sensitivity','and']stopwordsfromnltk.corpusimportstopwords#打印出stopwords支持的所有语言,我们使用englishstopwords.fileids()['arabic','azerbaijani','danish','dutch','english','finnish','法语','德语','希腊语','匈牙利语','印度尼西亚语','意大利语','哈萨克语','尼泊尔语','挪威语','葡萄牙语','罗马尼亚语','俄语','spanish','swedish','turkish']#打印所有停用词stopwords.raw('english').replace('\n','')"imemymyselfweour我们自己你你是你有是是是已经已经确实确实做了一个但是如果或因为直到直到由为与大约反对之间进入之前之后上面下面从上到下从上到下再次进一步然后一次这里那里当为什么所有如何所有彼此更多大多数其他一些这样的不也不不仅拥有相同所以太能只是不不应该现在应该会移动你不是不能不能没有没有没有没有没有没有没有没有不是不应该是不是不是不是不会不会不会不会“#过过滤停用词tokens=set(tokens)filtered=[wforwin标记if(wnotinstopwords.words('english'))]print(filtered)['nothing','sensitivity',',','one','beauty','words','heart','looks','take','whose','.','listened','easy']词性标注#第一次需要下载相应组件nltk.download()fromnltkimportpos_tagpos_tag(filtered)[('nothing','NN'),('sensitivity','NN'),(',',','),('one','CD'),('beauty','NN'),('words','NNS'),('heart','NN'),('looks','VBZ'),('take','VB'),('谁的','WP$'),('.','.'),('listened','VBN'),('easy','JJ')]POSTag指CC并列连词CD基数词DT限定词EX存在词FW外来词IN介词或从属连词JJ形容词JJR比较级形容词JJS最高级形容词LS列表项标记MD情态动词NN名词单数NNS名词复数NNP专有名词PDT预定词POS所有格结尾PRP人称代词PRP$所有格代词RB副词RBR副词比较RBS副词最高级eRP助词UH感叹词VB动词原型VBD动词过去式VBG动名词或现在分词VBN动词过去分词VBP现在时非第三人称单数VBZ现在时第三人称单数WDT以wh开头限定符分块fromnltk.chunkimportRegexpParsersentence=[('the','DT'),('little','JJ'),('yellow','JJ'),('dog','NN'),('died','VBD')]grammer="MY_NP:{

?*}"cp=nltk.RegexpParser(grammer)#generateruleresult=cp.parse(sentence)#Blockingprint(result)result.draw()#调用matplotlib库绘制(S(MY_NPthe/DTlittle/JJyellow/JJdog/NN)died/VBD)出现异常,使用%tb查看完整traceback.SystemExit:0命名实体识别#第一次需要下载相应组件nltk.download()fromnltkimportne_chunkinput="爱迪生今天去了清华大学。"print(ne_chunk(pos_tag(word_tokenize(input))))显示信息https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml(S(PERSONEdison/NNP)went/VBDto/TO(ORGANIZATIONTsinghua/NNPUniversity/NNP)today/NN./.)数据清洗importreffromnltk.corpusimportstopwords#Inputdatas='RT@Amila#Test\nTom\'snewlylistedCo&Mary\'sunlisted集团为nlTK提供技术。\nh$TSLA$AAPLhttps://t.co/x34afsfQsh'#removehtmltagss=re.sub(r'&\w*;|@\w*|#\w*','',s)#去掉一些值符号s=re.sub(r'\$\w*','',s)#去掉超链接s=re.sub(r'https?:\/\/.*\/\w*','',s)#去掉一些专有名词\b是单词的边界s=re.sub(r'\b\w{1,2}\b','',s)#去除多余空格s=re.sub(r'\s\s+','',s)#分词tokens=word_tokenize(s)#去除停用词tokens=[wforwintokensif(wnotinstopwords.words('english'))]#finalresultprint(''.join(tokens))Tom'newlylistedMary'unlistedGroupsupplytechnlTK.