簡體   English   中英

如何使用NLTK加載語料庫的多個XML文件並將其作為整體與Text類一起使用?

[英]How to load multiple XML files of corpora with NLTK and use it as a whole with Text class?

伙計們,我整理了一套NLTK的語料庫,它們基本上是簡單的XML文件。 我可以像這樣加載它:

>>> from nltk.corpus import cicero
>>> print cicero.fileids()
['cicero_academica.xml', 'cicero_arati_phaenomena.xml', ...]

現在,我知道XMLCorpusReader不會一次提供所有這些XML文件的內容,因為它希望一次只處理一個XML,對嗎? 我試圖繞過它編寫一個for循環,將其全部放入列表中,然后將其提供給XMLCorpusReader,但是沒有運氣...

簡而言之:我怎么能用NLTK加載多個XML語料庫,並一次在所有它們中運行.words()? 工作代碼示例會很好。

似乎我無法一次加載所有XML並使用它們(例如,與Text()類一起)通過所有XML文件(而不是一次僅一次)打印單詞的一致性。

是否有解決方法或真正的NLTK解決方案? 我應該編寫一個神奇的XMLCorpusReader繼承類嗎? 我應該刪除XML並使用平面文件嗎?

這與我的問題類似,但是到目前為止,我認為NLTK的答案並不是真正有用的: NLTK的XMLCorpusReader可以用於多文件語料庫嗎?

不完全是我所追求的,但現在可以解決問題。 我會再嘗試一些,所以以后可能會有所不同。 無論如何,一個小的工作測試:-)

# http://stackoverflow.com/questions/6849600/does-anyone-have-a-categorized-xml-corpus-reader-for-nltk
from CatXMLReader import CategorizedXMLCorpusReader

from nltk.corpus import cicero
from nltk import Text

fileids = cicero.abspaths()
reader = CategorizedXMLCorpusReader('/', fileids, cat_file='cats.txt')
words = Text(reader.words(fileids))
print words.concordance('et')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM