您好,登錄后才能下訂單哦!
怎么在python中提取文本信息?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Python主要應用于:1、Web開發;2、數據科學研究;3、網絡爬蟲;4、嵌入式應用開發;5、游戲開發;6、桌面應用開發。
1、信息提取
先用句子分段器將文檔的原始文本分成句子,再用記號賦值器將每個句子進一步分成單詞。其次,給每一個句子做詞性標記。以nltk中的默認工具為例,將句子分段器、分詞器、詞性標記器連接。
def ie_preprocess(document): # nltk 默認的句子分段器 sentences = nltk.sent_tokenize(document) # nltk默認分詞器 sentences = [nltk.word_tokenize(sent) for sent in sentences] # nltk默認詞性標記 sentences = [nltk.pos_tag(sent) for sent in sentences]
2、詞塊劃分
詞塊劃分是實體識別的基礎技術,對多個詞的順序進行劃分和標記。
如Noun Phrase Chunking(名詞短語詞塊劃分)
使用正則表達式來定義一個語法,來進行名詞短語詞塊的劃分
3、開發和評估詞塊劃分器
分區器可以用evaluate()方法評價分區器的性能好壞。
以下是使用一元標記來建立單詞塊分割器的學習。但是,不是確定每個單詞的正確單詞性標記,而是根據每個單詞的單詞性標記,確定正確的單詞塊標記。
# 使用一元標注器建立一個詞塊劃分器。根據每個詞的詞性標記,嘗試確定正確的詞塊標記。 class UnigramChunker(nltk.ChunkParserI): # constructor def __init__(self, train_sents): # 將訓練數據轉換成適合訓練標注器的形式。tree2conlltags()方法將每個詞塊樹映射到一個三元組(word,tag,chunk)的列表 train_data = [[(t, c) for w, t, c in nltk.chunk.tree2conlltags(sent)] for sent in train_sents] # 訓練一元分塊器 # self.tagger = nltk.UnigramTagger(train_data) # 訓練二元分塊器 self.tagger = nltk.BigramTagger(train_data) # sentence為一個已標注的句子 def parse(self, sentence): # 提取詞性標記 pos_tags = [pos for (word, pos) in sentence] # 使用標注器為詞性標記 標注IOB詞塊 tagged_pos_tags = self.tagger.tag(pos_tags) # 提取詞塊標記 chunktags = [chunktag for (pos, chunktag) in tagged_pos_tags] # 將詞塊標記與原句組合 conlltags = [(word, pos, chunktag) for ((word, pos), chunktag) in zip(sentence, chunktags)] # 轉換成詞塊樹 return nltk.chunk.conlltags2tree(conlltags)
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。