語言處理與Python 8 1一些語法困境

2022-08-03 09:00:11 字數 1316 閱讀 4147

前面章節的簡單總結

前面的學習中,主要焦點在與 詞彙。

如何識別,分析詞彙的結構、分配詞彙類別、以及獲得詞彙的含義。

還有如何識別詞彙序列或者n-gram的模式。

8.1一些語法困境

語言資料和無限可能性

每天都在增加電子語言,資料量是非常大的;

句子的組合具有無線的可能性;

普遍存在的歧義

讓我們仔細看看短語i shot an elephant in mypajamas中的歧義。

這裡有乙個文法:

>>>groucho_grammar= nltk.parse_cfg("""

... s -> npvp

... pp-> pnp

... np-> detn| detnpp| 'i'

... vp-> vnp| vppp

... det-> 'an' | 'my'

... n-> 'elephant' | 'pajamas'

... v-> 'shot'

... p -> 'in'

...

""")

經過這個文法分析,是有歧義的:

>>>sent = ['

i', '

shot

', '

an', '

elephant

', '

in', '

my', '

pajamas']

>>>parser =nltk.chartparser(groucho_grammar)

>>>trees =parser.nbest_parse(sent)

>>>for tree in

trees:

...

print

tree

(s(np i)

(vp(v shot)

(np (det an) (n elephant) (pp (p

in) (np (det my)(n pajamas))))))

(s(np i)

(vp(vp (v shot) (np (det an) (n elephant)))

(pp (p

in) (np (det my)(n pajamas)))))

有兩種分析方式,可以用樹來表示:

8 1 一些語法困境

usr bin env python coding utf 8 上下文無關文法cfg in 7 get ipython run line magic pinfo2 nltk.cfg.fromstring in 3 import nltk grammar1 nltk.cfg.fromstring s ...

81 程序的一些方法

from multiprocessing import process,current process import time import os 每個程序都會有自己的id號pid deftask print 子程序 當前程序的id號 print current process pid print ...

python 字典處理的一些坑

處理任務 幾十萬資料,目標,把重複資料的top,找出來。類似這樣 dict 這樣建字典太慢了,幾十萬更本處理不過來 第二次 if num not in num dic.keys num dic num 1 else num dic num 1還是太慢,主要原因是dic.keys 返回乙個列表 第三次...