nlp自然语言处理流程是什么?

NLP自然语言处理流程:打开一个 URL,读里面 HTML 格式的内容,去除标记,并选择字符的切 片,然后分词,是否转换为 nltk.Text 对象是可选择的。我们也可以将所有词汇小写并提取 词汇表。 在这条流程后面还有很多操作。要正确理解它,这样有助于明确其中提到的每个变量的 类型。使用 type(x)我们可以找出任一 Python 对象 x 的类型,如 type(1)是因为 1 是一个整数。 当我们载入一个 URL 或文件的内容时,或者当我们去掉 HTML 标记时,我们正在处理 字符串,也就是 Python 的数据类型(在 3.2 节,我们将学习更多有关字符串的内容):


>>> raw = open('document.txt').read()
>>> type(raw) <type 'str'="">

NotImplementedError: To remove HTML markup, use BeautifulSoup’s get_text() function
图中nltk.clean_html 已经去掉,由BeautifulSoup 中的get_text function 代替。

当我们将一个字符串分词,会产生一个(词的)链表,这是 Python 的类型。规 范化和排序链表产生其它链表:


>>> tokens = nltk.word_tokenize(raw) 
>>> type(tokens) <type 'list'=""> 
>>> words = [w.lower() for w in tokens] 
>>> type(words) <type 'list'=""> 
>>> vocab = sorted(set(words)) 
>>> type(vocab) <type 'list'=""> 

一个对象的类型决定了它可以执行哪些操作。比如说我们可以追加元素到一个链表,但 不能追加元素到一个字符串:


>>> vocab.append('blog') 
>>> raw.append('blog') Traceback (most recent call last): File "", line 1, in AttributeError: 'str' object has no attribute 'append'

同样的,我们可以连接字符串与字符串,列出链表内容,但我们不能连接字符串与链表:


>>> query = 'Who knows?' 
>>> beatles = ['john', 'paul', 'george', 'ringo']
>>> query + beatles Traceback (most recent call last): File "", line 1, in TypeError: cannot concatenate 'str' and 'list' objects 

在下一节,我们将更加细致的探讨字符串,并进一步探索字符串和链表之间的关系。

Comments 1

发表评论

电子邮件地址不会被公开。 必填项已用*标注