Python NLTK提取有用的chunk

2021-06-16 22:11:13 字數 1016 閱讀 2700

文字的資訊很多,我們需要如何提取有用的資訊?

比如一句話:

json is a good boy

我們希望得到的資訊是json 和 a good boy

那麼首先我們需要對句子進行分詞和判斷單詞的屬性:

可以用下面的**:

def ie_preprocess(document):

... sentences = nltk.sent_tokenize(document)

... sentences = [nltk.word_tokenize(sent) for sent in sentences]

... sentences = [nltk.pos_tag(sent) for sent in sentences]

然後需要我們規定需要提取的資訊的型別:

也就是語法上的格式:

grammar = "np: "

這裡dt是定語,jj是形容詞,nn是名詞

cp = nltk.regexpparser(grammar)

之後使用

result = cp.parse(sentence)

對語句進行分析

會得到乙個nltk.tree.tree的結構的東西

然後我們通過:

for n in chunked:

if isinstance(n, nltk.tree.tree):

if n.node=='np':

a = n

這樣的**拿到我們需要的片段

實際中,這個方法並不能去掉一些非英語的單詞

我們可以加入:

d = enchant.dict("en_us")

這樣的判讀去刪選。

希望對大家有幫助。

VBA Excel 提取有用的列並作列排序

stdata 資料檔案,rngconfig 配置檔案 public function run byref stdata as worksheet,byref rngconfig as range as worksheet on error goto proc err dim r config as ...

python nltk 9 構建基於特徵的語法

英文文件 中文文件 以下編號按個人習慣 特徵在建立基於規則的語法中的作用。以下以句子kim chased lee為例,找到其動詞的施事角色和主語,受事角色和賓語 def lex2fs word 以下兩個物件中,不同的面向語義的特徵被稱為特徵結構 特徵 特徵值 特徵結構包含各種有關語法實體的資訊 ki...

有用的命令

root oradb path path tmp 使用該方式修改path變數,以使得能找到ls命令 oracle oradb robinson echo path 檢視path的值 oracle oradb mkdir p robinson bak archive log 使用 p引數建立目錄arc...