inflect java_Python lemminflect包_程序模块 - PyPI - Python中文网
lemminflect
一個用于英文引理和屈折的python模塊。
關于
lemminflect使用字典方法對英語單詞進行檸檬化,并將其屈折成用戶提供的格式通用依賴項或penn treebank標記。該庫通過應用神經網絡技術對單詞形式進行分類并選擇適當的變形規則來處理詞匯表外(oov)單詞。
該系統充當獨立模塊或SPAcy的擴展。nlp系統。
詞典和詞法規則來自于nih的專業詞典,其中包含了大量關于英語單詞形式的信息。
一個更簡單的僅限屈折變化的系統可用作pyinlect。創建lemminflect是為了解決該項目的一些缺點并添加一些功能,例如…獨立于Spacy Lemmatizer
用神經網絡消除詞法中的歧義
取消拼寫和多個單詞形式的Unigrams
文檔
有關最新的文檔,請參見閱讀文檔。
檸檬汁的準確度
lemminflect和其他幾個流行的nlp實用程序的準確性是使用自動生成的屈折變化數據庫(agid)作為基線進行測試的。agid有大量的引理及其相應的屈折變化。每一個詞形變化都由測試軟件進行元素化,然后與語料庫中的原始值進行比較。測試包括119194個不同的屈折詞。| Package | Verb | Noun | ADJ/ADV | Overall | Speed |
|----------------------------------------------------------------|
| LemmInflect | 96.1% | 95.4% | 93.9% | 95.6% | 42.0 uS |
| CLiPS/pattern.en | 93.6% | 91.1% | 0.0% | n/a | 3.0 uS |
| Stanford CoreNLP | 87.6% | 93.1% | 0.0% | n/a | n/a |
| spaCy | 79.4% | 88.9% | 60.5% | 84.7% | 5.0 uS |
| NLTK | 53.3% | 52.2% | 53.3% | 52.6% | 13.0 uS |
|----------------------------------------------------------------|速度以微秒/引理為單位,在I9-7940x CPU上進行。
Stanford和Clips Lemmatizers不接受詞性信息,在模式的情況下,這些方法是專門為動詞設置的,而不是為所有單詞類型設置的。
Stanford CalnLp ReMaMurZER是一個Java包,通過內置的HTML服務器進行測試,因此速度測量無效。
要求和安裝
運行lemminflect的唯一外部需求是numpy,它用于驅動神經網絡的矩陣數學。這些網絡相對較小,運行時不需要很大的CPU功率。
要安裝,請執行..
pip3安裝lemminflect
該項目是在python 3和ubuntu下構建和測試的,但是應該在任何linux、windows、mac等平臺上運行。系統。它在Python2下未經測試,但可以在該環境中運行,只需很少的更改或不做任何更改。
代碼庫還包括庫函數和腳本,用于創建各種數據文件和神經網絡。這包括……從古騰堡和十億字corpra中提取單字
用于加載和解析專業詞典的python腳本
基于keras和tensorflow的神經網絡訓練
這些都不是運行時操作所必需的。但是,如果您想修改系統,請參閱文檔了解更多信息。
庫使用
要對單詞進行元素化,請使用方法getlemma()。這需要一個單詞和一個通用依賴項標記,并返回引理作為可能的拼寫列表。首先使用字典系統,如果沒有找到引理,則規則系統已啟用。> from lemminflect import getLemma
getLemma('watches', upos='VERB')
('watch',)
要對單詞進行屈折,請使用方法getinflection。這需要引理和penn treebank標記,并返回與該標記關聯的特定屈折變化的元組。與以上類似,首先使用字典,然后根據需要應用屈折變化規則。> from lemminflect import getInflection
> getInflection('watch', tag='VBD')
('watched',)
> getInflection('xxwatch', tag='VBD')
('xxwatched',)
庫提供了較低級別的函數來直接訪問字典和oov規則。有關詳細說明,請參見檸檬味劑或屈折變化
用作Spacy擴展名
要用作擴展,您需要Spacy2.0或更高版本。1.9及更早版本不支持此處使用的擴展方法。
要設置擴展,請首先導入lemminflect。這將為每個spacytoken創建新的引理和inflect方法。這些方法的操作與上述方法類似,但返回的字符串包含最常見的拼寫,而不是元組。> import spacy
> import lemminflect
> nlp = spacy.load('en_core_web_sm')
> doc = nlp('I am testing this example.')
> doc[2]._.lemma()
test
> doc[4]._.inflect('NNS')
examples
問題
如果發現錯誤,請在github問題列表中報告。但是要注意,在返回正確的屈折變化時,可能會出現許多不同類型的問題。有些是不容易修復的。屈折形式的問題包括…屈折變化的多重拼寫法(如。關節成形術,關節成形術或關節成形術)
質量形式和復數類型(即人與人)
依賴于上下文的形式(如…進一步與進一步)
標簽未完全指定的感染(即…be/vbd可以是"was"或"was")
一個常見的問題是,某些形式的動詞"be"并沒有完全由treekbank標記指定。例如be/vbd屈折為"was"或"was",be/vbp屈折為"am"或"are"。為了消除這些形式的歧義,需要檢查句子中的其他單詞。此時,lemminflect不包含此功能。
歡迎加入QQ群-->: 979659372
推薦PyPI第三方庫
總結
以上是生活随笔為你收集整理的inflect java_Python lemminflect包_程序模块 - PyPI - Python中文网的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【办公基本软件】万彩办公大师教程丨批量文
- 下一篇: 教你如何用ps美化皮肤 每一步都很容易理