新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python如何提取文本信息?
1、信息提取

先用句子分段器將文檔的原始文本分成句子,再用記號賦值器將每個句子進(jìn)一步分成單詞。其次,給每一個句子做詞性標(biāo)記。以nltk中的默認(rèn)工具為例,將句子分段器、分詞器、詞性標(biāo)記器連接。
def ie_preprocess(document): # nltk 默認(rèn)的句子分段器 sentences = nltk.sent_tokenize(document) # nltk默認(rèn)分詞器 sentences = [nltk.word_tokenize(sent) for sent in sentences] # nltk默認(rèn)詞性標(biāo)記 sentences = [nltk.pos_tag(sent) for sent in sentences]
2、詞塊劃分
詞塊劃分是實(shí)體識別的基礎(chǔ)技術(shù),對多個詞的順序進(jìn)行劃分和標(biāo)記。
如Noun Phrase Chunking(名詞短語詞塊劃分)
使用正則表達(dá)式來定義一個語法,來進(jìn)行名詞短語詞塊的劃分
3、開發(fā)和評估詞塊劃分器
分區(qū)器可以用evaluate()方法評價分區(qū)器的性能好壞。
以下是使用一元標(biāo)記來建立單詞塊分割器的學(xué)習(xí)。但是,不是確定每個單詞的正確單詞性標(biāo)記,而是根據(jù)每個單詞的單詞性標(biāo)記,確定正確的單詞塊標(biāo)記。
# 使用一元標(biāo)注器建立一個詞塊劃分器。根據(jù)每個詞的詞性標(biāo)記,嘗試確定正確的詞塊標(biāo)記。 class UnigramChunker(nltk.ChunkParserI): # constructor def __init__(self, train_sents): # 將訓(xùn)練數(shù)據(jù)轉(zhuǎn)換成適合訓(xùn)練標(biāo)注器的形式。tree2conlltags()方法將每個詞塊樹映射到一個三元組(word,tag,chunk)的列表 train_data = [[(t, c) for w, t, c in nltk.chunk.tree2conlltags(sent)] for sent in train_sents] # 訓(xùn)練一元分塊器 # self.tagger = nltk.UnigramTagger(train_data) # 訓(xùn)練二元分塊器 self.tagger = nltk.BigramTagger(train_data) # sentence為一個已標(biāo)注的句子 def parse(self, sentence): # 提取詞性標(biāo)記 pos_tags = [pos for (word, pos) in sentence] # 使用標(biāo)注器為詞性標(biāo)記 標(biāo)注IOB詞塊 tagged_pos_tags = self.tagger.tag(pos_tags) # 提取詞塊標(biāo)記 chunktags = [chunktag for (pos, chunktag) in tagged_pos_tags] # 將詞塊標(biāo)記與原句組合 conlltags = [(word, pos, chunktag) for ((word, pos), chunktag) in zip(sentence, chunktags)] # 轉(zhuǎn)換成詞塊樹 return nltk.chunk.conlltags2tree(conlltags)
以上就是python提取文本信息的方法,希望能對大家有所幫助,更多知識盡在python學(xué)習(xí)網(wǎng)。
本文標(biāo)題:創(chuàng)新互聯(lián)Python教程:python如何提取文本信息?
網(wǎng)站地址:http://fisionsoft.com.cn/article/coojpop.html


咨詢
建站咨詢
