python英文分词分句的函数(python进行英文分词)

http://www.itjxue.com  2023-04-05 06:24  来源:未知  点击次数: 

python中line.split()的用法及实际使用示例

Python中split()函数,通常用于将字符串切片并转换为列表。

split():语法:

拆分字符串。通过制定分隔符将字符串进行切片,并返回分割后的字符串列表[list]

参数:str:分隔符,默认为空格,但不能为空("")

num: 表示分割次数。如果指定num,则分割成n+1个子字符串,并可将每个字符串赋给新的变量

line.strip().split(’,’)

strip()表示删除掉数据中的换行符,split(‘,’)则是数据中遇到‘,’ 就隔开。

用Python实现英文文章难度评级

By Jiaxian Shi

英文文章的难度从直觉上来讲可以从以下两方面来定义:

句子的难易程度可以从句子的长度和复杂性(从句数量,嵌套)方面来考虑。词汇的难易程度可以从词汇的长度和使用频率(专业词汇,罕见词汇)方面来考虑。通过查阅维基百科等相关资料,发现目前普遍得到运用的可读性标准为Flesch–Kincaid可读性测试指标。Flesch–Kincaid可读性测试指标由两个指标构成:Flesch Reading Ease(FRE)和Flesch–Kincaid Grade Level(FKGL)。与我们的直觉一致,两者都使用了类似的方法:句子长度和词汇长度(由音节数确定,不单纯考虑字母数)。由于两个指标对句子长度和词汇长度所采取的权重不同(包括正负号),所以两个指标的意义相反:FRE数值越高,文章就越简单,可读性也越高。而FKGL数值越高,文章就越复杂,文章的可读性也就越低。

使用Python强大的自然语言处理(NLP)包NLTK,来实现下述3个功能:

其中,断句使用NLTK提供的非监督学习的预训练模型tokenizers/punkt/english.pickle,分词则使用NLTK推荐的word_tokenize函数(使用TreebankWordTokenizer和PunktSentenceTokenizer模块),分音节则使用NLTK供的SyllableTokenizer模块。需要注意的是,分词会将标点符号分为一个单词,需要手动去除。同时,分音节时会讲英语中的连字符“-”分为一个音节,也需要手动去除。另外,文章需要进行预处理,去除回车符和空格,并将非标准标点符号转换为英文标准标点符号。

统计出句数,词数和音节数后,即可根据上文提供的公式计算出FRE和FKGL了。本程序使用4段不同类型的英文文章分别计算FRG和FKGL,并使用matplotlib模块绘制出柱状图已做比较。

文章:

比较结果如下图所示:

可以发现,文章的难度为:儿童文学侦探小说杂志文章学术论文,这与我们的实际感受是一致的。

如何用 Python 中的 NLTK 对中文进行分析和处理

一、NLTK进行分词

用到的函数:

nltk.sent_tokenize(text) #对文本按照句子进行分割

nltk.word_tokenize(sent) #对句子进行分词

二、NLTK进行词性标注

用到的函数:

nltk.pos_tag(tokens)#tokens是句子分词后的结果,同样是句子级的标注

三、NLTK进行命名实体识别(NER)

用到的函数:

nltk.ne_chunk(tags)#tags是句子词性标注后的结果,同样是句子级

上例中,有两个命名实体,一个是Xi,这个应该是PER,被错误识别为GPE了; 另一个事China,被正确识别为GPE。

四、句法分析

nltk没有好的parser,推荐使用stanfordparser

但是nltk有很好的树类,该类用list实现

可以利用stanfordparser的输出构建一棵python的句法树!

python的 learn.preprocessing.vocabularyprocessor怎么理解

1 tf.contrib.learn.preprocessing.VocabularyProcessor (max_document_length, min_frequency=0, vocabulary=None, tokenizer_fn=None)

参数:

max_document_length: 文档的最大长度。如果文本的长度大于最大长度,那么它会被剪切,反之则用0填充。

min_frequency: 词频的最小值,出现次数小于最小词频则不会被收录到词表中。

vocabulary: CategoricalVocabulary 对象。

tokenizer_fn:分词函数

代码:

from tensorflow.contrib import learn

import numpy as np

max_document_length = 4

x_text =[

'i love you',

'me too'

]

vocab_processor = learn.preprocessing.VocabularyProcessor(max_document_length)

vocab_processor.fit(x_text)

print next(vocab_processor.transform(['i me too'])).tolist()

x = np.array(list(vocab_processor.fit_transform(x_text)))

print x

[1, 4, 5, 0]

[[1 2 3 0]

[4 5 0 0]]

(责任编辑:IT教学网)

更多

推荐网站经济文章