我有一個丹麥WordNet的.txt文件。有什麼方法可以將這個與NLP庫一起用於Python,比如NLTK?如果不是的話,你會如何用一種不被特定圖書館支持的語言進行自然語言處理。另外還說你想用英語或荷蘭語以外的語言在像spaCy這樣的圖書館中進行命名實體識別。有沒有辦法做到這一點?是否可以將自己的WordNet添加到庫中?
回答
有沒有什麼方法可以將它與NLP庫一起用於Python,比如NLTK?
你可以用NLTK做到這一點,儘管它有點尷尬。
您需要將WordNet語料庫轉換爲Open Multilingual Wordnet格式,這是一種簡單的製表符分隔格式。請注意,他們已經有丹麥的WordNet。
然後你應該在NLTK中安裝WordNet和Open Multilingual Wordnet語料庫,如果你還沒有這樣做的話。這將創建一個像~/nltk_data/corpora/omw/
這樣的目錄,併爲每個語言文件提供一個子目錄。你需要通過創建一個目錄並命名您的文件中像這樣來添加您的文集:
~/nltk_data/corpora/omw/xxx/wn-data-xxx.tab
xxx
可以是任何東西,但它必須是相同的在兩地。該文件名模式在NLTK here中被硬編碼。
之後,您可以通過將xxx
指定爲lang
參數來使用WordNet。下面是一個例子from the documentation:
>>> wn.synset('dog.n.01').lemma_names('ita') # change 'ita' to 'xxx'
['cane', 'Canis_familiaris']
你會怎樣去了解自然語言處理在未通過給定的庫支持的語言?
我經常用日語做這個。
有些技術會查看您的令牌 - 也就是說,他們會檢查一個字是否爲 ,字面意思是「說」或「是」等。這對於stemmers和 lemmatizers來說很常見,原因很明顯。有些系統使用基於假設 的規則,瞭解語言部分如何以給定語言(通常是英語)進行交互。您可能會將這些期望轉化爲您的語言,但通常您不能使用這些期望。
但是,許多有用的技巧根本無法查看令牌 - 它們只是在於兩個令牌是否相等。這些通常主要依賴於標籤或搭配數據等功能 。您可能需要預先標記您的 數據,並且您可能需要在維基百科上以 語言培訓通用語言模型,但就是這樣。 Word矢量,NER,文檔相似性是例子 缺乏語言支持通常不成問題的問題。
此外,還說你想用英語或荷蘭語以外的語言在像spaCy這樣的圖書館中進行命名實體識別。有沒有辦法做到這一點?
SpaCy爲NER提供了custom labelling的一種手段。使用它與 否則不支持的語言不記錄,並會有點棘手。 但是,由於您不需要NER的完整語言模型,因此可以使用具有標記示例的NER 特定工具。
這裏的基礎上,CoNLL格式 CRF++一些示例訓練數據:
He PRP B-NP
reckons VBZ B-VP
the DT B-NP
current JJ I-NP
account NN I-NP
deficit NN I-NP
will MD B-VP
narrow VB I-VP
to TO B-PP
only RB B-NP
# # I-NP
1.8 CD I-NP
billion CD I-NP
in IN B-PP
September NNP B-NP
. . O
He PRP B-NP
reckons VBZ B-VP
..
這樣的格式是由幾個CRF或其它NER工具支持。 CRFSuite是一個Python wrapper。
對於這類數據,該算法並不關心第一列中的內容,因此語言支持不是問題。
希望有幫助!
- 1. 將GMP添加到自己的庫中
- 2. 是否可以將您自己的字符串添加到Django SearchVectorField中?
- 3. 可以UIViewController自己添加到UINavigationController
- 4. 是否可以將視圖拖放到自己的XIB中?
- 5. 是否可以添加我們自己的廣告橫幅?
- 6. 是否可以將非Maven庫添加到artifactory存儲庫?
- 7. 是否可以將MouseMotionListener添加到BufferedImage?
- 8. 我是否需要將NSNumbers自己添加到NSDictionary中?
- 9. 是否可以將我的自定義控件添加到xcode
- 10. 您是否可以將來自其他Azure AD的用戶添加到您自己的Azure AD中的組?
- 11. 將自己的屬性添加到HTML元素可以嗎?
- 12. 我可以將自己的驗證器添加到ValidatorPluginManager嗎?
- 13. 可以將我自己的類添加到實體框架嗎?
- 14. 是否可以將本地擴展添加到Actionscript庫項目?
- 15. 是否可以將數據庫元素添加到Google任務?
- 16. Heroku是否可以將git庫添加到github?
- 17. 是否可以將我自己的自定義單詞添加到Wit.ai語音識別器中?
- 18. 是否可以將自定義驗證添加到JSF bean?
- 19. 是否可以將自定義數據添加到HealthKit?
- 20. 是否可以將像素添加到「自動」值?
- 21. 是否可以將自定義類添加到QStandardItem?
- 22. 是否可以將類添加到自定義tinyMCE按鈕?
- 23. 是否可以將自定義元數據添加到SQLite列?
- 24. 是否可以實現自己的IASKSettingsReader?
- 25. 我可以將自己的聲音添加到TTS,並可以用我自己的聲音生成段落嗎?
- 26. 是否可以將方法添加到集合中的類中?
- 27. 是否可以將CCLabel添加到CCSpriteBatchNode中的CCSprite中?
- 28. 是否可以將ImageButton添加到GalleryView中的圖像中?
- 29. 如何將您自己的庫添加到Zend Framework中
- 30. 緩存WorkerRole可以添加到它自己的緩存中嗎?
簡答:你不行。一個API只支持它支持的東西(這是spaCy最大的缺點之一)。漫長的回答是,如果你真的知道你在做什麼,我想你可能可以自己編輯源代碼。 – spicypumpkin
@Posh_Pumpkin,這是不正確的。可以擴展API,因爲它是一個開源項目,請參閱https://github.com/nltk/nltk/pull/1621。即使對'spacy',我相信@honnibal和@ines鼓勵貢獻:https://github.com/explosion/spaCy/blob/master/CONTRIBUTING.md – alvas
@alvas嗯,是的。這不算是編輯源代碼嗎?我很確定這不是OP想要的。 – spicypumpkin