NLP之英文分词

任务

对Excel中的摘要列的英文段落进行英文分词、词性标注,将结果导入Excel

下面展示代码`。

import nltk
from nltk.tokenize import WordPunctTokenizer, sent_tokenize
from nltk.corpus import stopwords
from nltk.tag import pos_tag
import numpy as np
import pandas as pd
import xlwt

#英文断句分词	
def wo_se_broken(sentence):
	#先分句,再分词
	paragraph = sentence#句子与下一个句子之间要用空格隔开
	sents=nltk.sent_tokenize(paragraph.lower())#sent_tokenize返回分句后的句子列表
	#print(sents)
	words=[]
	for sent in sents:
		text_list=nltk.word_tokenize(sent)#分词
		#去掉标点符号
		english_punctuations=[',', '.', ':', ';', '?', '(', ')', '[', ']', '&', '!', '*', '@', '#', '$', '%']
		word_1=[w for w in text_list if w not in english_punctuations]
		#去掉停用词(停用词均为小写形式,需先将句子转为小写形式)
		stops = set(stopwords.words("english"))#set()函数创建一个无序不重复元素集
		word_2=[w for w in word_1 if w not in stops]
		word_3=pos_tag(word_2)#词性标注
		words=words+word_3
	#print(words)
	return words
		
path='E://网页下载/20210912071950877.XLSX'
path_end='E://网页下载/0-500_processed.xls'

data = pd.read_excel(path)
df1=pd.DataFrame(data)
abstracts=df1['摘要'].values#获取摘要列数据
#print(abstracts)


#以字典形式创建DataFrame
value=[]
data={'摘要分词':value}

#摘要列断词,每行一个循环
for i in range(len(abstracts)):
	abstract=abstracts[i]
	ab_broken=wo_se_broken(abstract)
	value.append(ab_broken)
#print(data)
df2=pd.DataFrame(data,columns=['摘要分词'])
df2.to_excel(path_end,columns=['摘要分词'])

一些注意的问题:
1、DataFrame是一种数据结构,对于读取到的Excel数据,须先转换成DataFrame格式,才可进行操作
DataFrame(数据,list索引(行数),list列名)
2、将结果导入Excel中时(我所得结果为断词后的列表),需先以元组方式 创建DataFrame结构,然后以DataFrame结构的结构写入Excel

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值