2010-05-05 24 views
68

維基詞典的API如何用來確定一個詞是否存在?如何檢索維基詞典的內容?

+0

任何人誰閱讀文檔將看到API包含隔靴搔癢功能「檢索詞多語言內容」。我估計它會讓你獲得大約1%的比例。您可以檢索原始的wiki語法或解析的HTML,並從那裏您必須自己做所有事情。話雖如此,可能會有一個非常新的實驗性API只適用於英文維基詞典。 – hippietrail 2016-08-28 06:28:26

回答

51

Wiktionary API可用於查詢單詞是否存在。對於現有的和非現有的網頁

例子:

http://en.wiktionary.org/w/api.php?action=query&titles=test http://en.wiktionary.org/w/api.php?action=query&titles=testx

第一個鏈接提供對其他類型的格式可能會更容易分析的例子。

在小XHTML格式的檢索詞的數據(應該超過需要的存在),請求該頁面的打印版本:

http://en.wiktionary.org/w/index.php?title=test&printable=yes http://en.wiktionary.org/w/index.php?title=testx&printable=yes

這些就可以用任何標準的XML解析器進行解析。

+3

謝謝; API本身並不是我所希望的,但是您提供的鏈接就是我一直在尋找的。 – Armentage 2010-05-14 02:19:24

+0

現在,它接受其他格式參數,而不是xml輸出,如下所示:https://en.wiktionary.org/w/api.php?action = query &titles=test&format = json – eenagy 2015-06-28 18:07:05

+2

雖然https://可能無法正常工作en.wiktionary.org/wiki/Category:English_misspellings https://zh.wiktionary.org/wiki/amatuer – endolith 2016-04-30 04:15:52

20

有在短短檢查維基與您正在尋找的名稱頁面的幾個注意事項:

買者#1:所有Wiktionaries包括英文維基詞典實際上已經包括在每一個字的目標每一種語言,所以如果你只是使用上述API調用,你會知道,你問這個字是在至少一種語言文字,但不一定英文:http://en.wiktionary.org/w/api.php?action=query&titles=dicare

買者#2:也許重定向存在從一個字到另一個字。它可能來自另一種拼寫,但可能來自某種錯誤。 http://en.wiktionary.org/w/api.php?action=query&titles=profilemetry

買者#3:上面的API調用不會重定向和文章區分一些Wiktionaries包括英文維基詞典包括 「常見的拼寫錯誤」:http://en.wiktionary.org/w/api.php?action=query&titles=fourty

買者#4:有些Wiktionaries允許存在很少或沒有關於該術語信息的存根條目。過去這在幾個維基百科中很常見,但不是英文維基百科。但它似乎現在也傳播到英語維基詞典:https://en.wiktionary.org/wiki/%E6%99%B6%E7%90%83(固定存根被填滿時的永久鏈接,所以你仍然可以看到存根是什麼樣的:https://en.wiktionary.org/w/index.php?title=%E6%99%B6%E7%90%83&oldid=39757161

如果這些不包括在你想要的內容中,將不得不加載和解析wiki文本本身,這不是一項簡單的任務。

+1

我真正想做的是全面轉載非英語的Wikisingary網站上的數據,並且然後把內容變成我可以在本地使用的東西。現在看起來很愚蠢,但我希望我可以請求所有單詞的列表,然後根據需要逐個取消它們的翻譯。 – Armentage 2010-12-05 17:51:26

+1

修復注意事項#2很簡單:向查詢添加'&prop = info'並檢查「重定向」屬性的響應。 – svick 2012-04-30 11:17:18

+0

@svick:是的,這是真的#2使用API​​時更容易規避,但這些基本警告還包括試圖解析[Wiktionary數據轉儲文件](http://dumps.wikimedia.org/enwiktionary/),儘管這個問題並沒有問到這種方法。 – hippietrail 2012-04-30 11:26:10

17

你可以下載Wikitionary data轉儲。有更多的信息在FAQ。出於您的目的,definitions dump可能是比xml轉儲更好的選擇。

+1

這些轉儲文件非常龐大,目前尚不清楚要下載哪些文件(全部是?)。可能不是大多數人正在尋找它,他們只是想以編程方式查找一些詞。 – Cerin 2012-06-14 18:25:45

+0

我解釋了要下載哪個文件 - 即定義轉儲(來自我的鏈接的目錄只是同一個文件的不同版本),是的,如果程序上想要查找單詞是理想的。如果你能保證程序只能在線執行,還有其他的選擇,但是我回答了原始問題的這一部分:「或者,我有什麼方法可以取消支持維基文庫的字典數據?」 – kybernetikos 2012-06-19 20:18:57

+8

定義轉儲鏈接不再可用。 – 2015-08-11 16:51:51

6

爲了保持它非常簡單,從這樣的轉儲中提取的話:

bzcat pages-articles.xml.bz2 | grep '<title>[^[:space:][:punct:]]*</title>' | sed 's:.*<title>\(.*\)</title>.*:\1:' > words 
+0

如何獲取pages-articles.xml.bz2的副本? – Armentage 2012-04-10 13:27:37

+0

這只是一個通用的名稱,我用來描述'LANGwiktionary-DATE-pages-articles.xml.bz2'形式的轉儲。轉到[link](http://dumps.wikimedia.org/backup-index.html),然後點擊'LANGwiktionary'(LANG例如'en','de'...)。 – benroth 2012-04-11 07:52:52