技术标签: NLP
下面展示了一种简易清洗英文文本的模板代码,可自定义修改或补充
import re
from nltk.corpus import stopwords
from nltk import word_tokenize,pos_tag
from nltk.stem import WordNetLemmatizer
def tokenize(sentence):
'''
去除多余空白、分词、词性标注
'''
sentence = re.sub(r'\s+', ' ', sentence)
token_words = word_tokenize(sentence)
token_words = pos_tag(token_words)
return token_words
wordnet_lematizer = WordNetLemmatizer()
def stem(token_words):
'''
词形归一化
'''
words_lematizer = []
for word, tag in token_words:
if tag.startswith('NN'):
word_lematizer = wordnet_lematizer.lemmatize(word, pos='n') # n代表名词
elif tag.startswith('VB'):
word_lematizer = wordnet_lematizer.lemmatize(word, pos='v') # v代表动词
elif tag.startswith('JJ'):
word_lematizer = wordnet_lematizer.lemmatize(word, pos='a') # a代表形容词
elif tag.startswith('R'):
word_lematizer = wordnet_lematizer.lemmatize(word, pos='r') # r代表代词
else:
word_lematizer = wordnet_lematizer.lemmatize(word)
words_lematizer.append(word_lematizer)
return words_lematizer
sr = stopwords.words('english')
def delete_stopwords(token_words):
'''
去停用词
'''
cleaned_words = [word for word in token_words if word not in sr]
return cleaned_words
def is_number(s):
'''
判断字符串是否为数字
'''
try:
float(s)
return True
except ValueError:
pass
try:
import unicodedata
unicodedata.numeric(s)
return True
except (TypeError, ValueError):
pass
return False
characters = [' ',',', '.','DBSCAN', ':', ';', '?', '(', ')', '[', ']', '&', '!', '*', '@', '#', '$', '%','-','...','^','{','}']
def delete_characters(token_words):
'''
去除特殊字符、数字
'''
words_list = [word for word in token_words if word not in characters and not is_number(word)]
return words_list
def to_lower(token_words):
'''
统一为小写
'''
words_lists = [x.lower() for x in token_words]
return words_lists
def pre_process(text):
'''
文本预处理
'''
token_words = tokenize(text)
token_words = stem(token_words)
token_words = delete_stopwords(token_words)
token_words = delete_characters(token_words)
token_words = to_lower(token_words)
return token_words
if __name__ == '__main__':
text = 'This is an example of English sentence which contains some other characters [email protected]#$%^&*()...'
token_words = tokenize(text)
token_words = stem(token_words)
token_words = delete_stopwords(token_words)
token_words = delete_characters(token_words)
token_words = to_lower(token_words)
print(token_words)
Private Declare Function GetSystemDirectory Lib "kernel32"Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSizeAs Long) As LongDim strtemp As String * 60Private Sub Co...
安装环境:Windows 7 Ultimate, 64-bit 6.1.7601, Service Pack 1VMware Workstation 10.0.1 build-1379776VMware Workstation 10.0(百度网盘下载:http://pan.baidu.com/s/1CI91k)破解机 百度网盘下载:http://pan.baidu.com/s/1jG2YSR0Ma
为什么80%的码农都做不了架构师?>>> ...
很多新手小白涌入自媒体这个行业,有不少人都是雄心壮志的来,垂头丧气的离开,是因为他们事先没做好全方位的了解,根本没有做互联网的思维就一头扎进来。现在是流量为王的时代(流量=钱),很多人开始选择坚持或者辞职后全职做自媒体创业,想在自媒体行业中闯出一片天地。在缺乏经验、零基础的情况下贸然进入,没有领路人,是要走很多弯路的。大周今天给大家分享几点我自己的经验总结,为了能让你更好的规避1、直接干有不少新手小白都会被割韭菜,他们听说自媒体可以快速赚钱,利用零碎的时间就可赚外快,也没有去自己调查、研究,就一头
在unicode中,无论是半角的英文字母,还是全角的汉字,它们都是统一的”一个字符“!同时,也都是统一的”两个字节“,请注意”字符”和”字节”两个术语的不同,“字节”是一个8位的物理存贮单元,而“字符”则是一个文化相关的符号UTF-8就是每次8个位传输数据,而 UTF-16 就是每次16个位。UTF-8就是在互联网上使用最广的一种 unicode 的实现方式,这是为传输而设计的编码,并使编码无国...
本文的数据源是朝阳医院2016的销售数据,课程是使用R语言来进行数据处理的,这里尝试采用Python来处理。要求的业务指标是:1)月均消费次数;2)月均消费金额;3)客单价;4)消费趋势这几个指标主要判断了用户端的消费趋势,为了给医院更多的指导,在此基础上进行了一定的扩展,个人增加了两个业务指标,也是为了多熟悉库的使用:5)列出各类药品售出数量的排名。这个指标可以指导医院多存储哪类药品,少存储哪类...
从头开始搭建集群(二)检验集群的安装目录3.1. 检验Corosync的安装 .............................................................. 273.2. 检查Pacemaker的安装 .....................................................
帮用户配置服务器,装的WIN2008系统,在WIN2008的IIS7上用FASTCGI调使用PHP-CGI.EXE,默认只有4个进程,这样对于大流量的网站为说进程数不足带来的进程排队现象十分严重,处理方案如下32位系统 http://www.iis.net/Downloads/files/AdminPack/TP2/AdminPack_x86.msi64位系统 http://www.iis.net...
1. 场景描述在web项目中经常会统计一些信息,会使用到大于小于等字符,但是在mybatis的mpper.xml中是不识别的。2. 解决方案2.1 使用处理标签使用<![CDATA[]]>处理标签,该标签是针对xml文件的,标签的作用就是把标签内容按文本处理。例如:大于:<![CDATA[ > ]]>大于等于:<![CDATA[ >= ]]&...
[整理]Android平台下渗透测试工具大集合cs24 @工具 2012-08-15 共 29988 人围观,发现 11 个不明物体 收藏该文分享一个google的项目,各种Android下的渗透测试工具。Ad Network Detector (1.2): http://market.android.com/details?id=com.lookout.addet
<br />original link http://blog.csdn.net/pheror_abu/archive/2010/05/27/5628737.aspx<br /> <br />转自:http://hi.baidu.com/lei005/blog/item/92df5e8314544a9cf703a648.html<br />/etc/sysconfig/network 包括主机基本网络信息,用于系统启动<br />/etc/sysconfig/network-script/ 此目录下是系统启
1.介绍 弄清楚这个事情,首先要知道,二进制与位的概念 二进制: 就是01010101...组成的一段数字,计算机内部[底层]使用的即二进制,包括储存和传输。 补充: 【计算机使用二进制和现代计算机系统的硬件实现有关。组成计算机系统的逻辑电路通常只有两个状态,即开关的接通与断开。】 二进制的发明者是 戈特弗里德·威廉·莱布尼茨【德国数理哲学大师...