2016-05-04 94 views
1

我已經將使用nltk.download()的NLTK數據集下載到D驅動器中的特定文件夾路徑中,例如D:\ ABC \ xyz。我在環境變量'NLTK_DATA'中設置了此路徑。 from nltk.corpus import city_database我得到的錯誤「不能導入名稱'city_database」無法從Anaconda Spyder Windows平臺中的NLTK數據導入city_database數據集

此數據集駐留在路徑:d:\我包括聲明我已經包括使用nltk.data.path.append("D:\ABC\xyz")

現在在Python程序這條路ABC \ xyz \ nltk_data \ corpora \ city_database,但我無法找到導入此數據集的正確語法。

回答

1

city_database不是語料庫,而是模塊nltk.sem.chat80的數據庫。

您可以通過致電nltk.sem.chat80.sql_demo()來訪問它。它只是一個演示,因此它引入數據庫而不是將其作爲列表返回。如果您需要在

http://www.nltk.org/api/nltk.sem.html?highlight=chat80#module-nltk.sem.chat80

做任何事情更復雜的看文檔例如把它作爲一個字典,你可以查詢數據庫是這樣的:

capitals = { 
    country:city for city, country in nltk.sem.chat80.sql_query(
     "corpora/city_database/city.db", 
     "SELECT City, Country FROM city_table" 
    ) 
} 

但實際上它是因爲它比較小且過時(例如莫斯科被列爲蘇聯的首都),所以比使用有用數據庫更有用。

+0

感謝Jakub的回覆:)。我會提高投票率,但沒有必要的要點。你會推薦一種更好的方式來使用nltk來識別文本中的城市嗎? –