2010-05-05 39 views
68

Làm thế nào để sử dụng API của Wiktionary để xác định một từ có tồn tại hay không?Làm thế nào để lấy lại nội dung từ Wiktionary?

+0

Bất cứ ai đã đọc tài liệu sẽ thấy rằng các API chứa nơi nào gần đủ chức năng để "lấy nội dung từ Wiktionary tiếng Việt". Tôi ước tính nó giúp bạn đạt được khoảng 1% con đường. Bạn có thể lấy cú pháp wiki thô hoặc HTML phân tích cú pháp và từ đó bạn phải tự làm mọi thứ. Có nói rằng có thể có một API thử nghiệm rất mới chỉ hoạt động trên Wiktionary tiếng Anh. – hippietrail

Trả lời

51

Có thể sử dụng Wiktionary API để truy vấn xem có tồn tại một từ hay không.

Ví dụ cho các trang hiện tại và không tồn tại:

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

Các liên kết đầu tiên cung cấp ví dụ về các loại định dạng mà có thể được dễ dàng hơn để phân tích.

Để lấy dữ liệu của từ trong một định dạng XHTML nhỏ (nên hơn tồn tại được yêu cầu), yêu cầu phiên bản in của trang:

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

Những sau đó có thể được phân tích cú pháp với bất kỳ trình phân tích cú pháp XML chuẩn nào.

+3

Cảm ơn; bản thân API không phải là điều tôi mong đợi nhưng liên kết bạn cung cấp là những gì tôi đang tìm kiếm. – Armentage

+0

Bây giờ, nó chấp nhận tham số định dạng bổ sung cho đầu ra xml khác như sau: https://en.wiktionary.org/w/api.php?action=query&titles=test&format=json – eenagy

+2

Có thể không hoạt động như bạn mong đợi mặc dù https: // en.wiktionary.org/wiki/Category:English_misspellings https://en.wiktionary.org/wiki/amatuer – endolith

20

Có một vài hãy cẩn thận trong chỉ kiểm tra rằng Wiktionary tiếng Việt có một trang với tên mà bạn đang tìm kiếm:

Nên biết trướC# 1: Tất cả Wiktionaries bao gồm Wiktionary tiếng Việt tiếng Anh thực sự đã mục tiêu bao gồm tất cả các từ trong mọi ngôn ngữ, vì vậy nếu bạn chỉ cần sử dụng trên API gọi bạn sẽ biết rằng từ mà bạn đang hỏi về là một từ trong ít nhất một ngôn ngữ, nhưng không nhất thiết phải bằng tiếng Anh: http://en.wiktionary.org/w/api.php?action=query&titles=dicare

nên biết trướC# 2: có lẽ một chuyển hướng tồn tại từ một từ này sang một từ khác. Nó có thể là từ một cách viết khác, nhưng nó có thể là do lỗi nào đó. Cuộc gọi API trên sẽ không phân biệt giữa một chuyển hướng và một bài báo: http://en.wiktionary.org/w/api.php?action=query&titles=profilemetry

Nên biết trướC# 3: Một số Wiktionaries bao gồm Wiktionary tiếng Việt tiếng Anh bao gồm "lỗi chính tả phổ biến": http://en.wiktionary.org/w/api.php?action=query&titles=fourty

Nên biết trướC# 4: Một số Wiktionaries cho phép các mục nhập có ít hoặc không có thông tin về thuật ngữ. Điều này thường được sử dụng trên một số Wiktionary nhưng không phải là Wiktionary tiếng Anh. Nhưng nó dường như bây giờ cũng đã lan sang Wiktionary tiếng Anh: https://en.wiktionary.org/wiki/%E6%99%B6%E7%90%83 (permalink cho khi stub được điền để bạn vẫn có thể nhìn thấy những gì một stub trông giống như: https://en.wiktionary.org/w/index.php?title=%E6%99%B6%E7%90%83&oldid=39757161)

Nếu chúng không được bao gồm trong những gì bạn muốn, bạn sẽ phải tải và phân tích cú pháp wikitext, đó không phải là một nhiệm vụ tầm thường.

+1

Điều tôi thực sự muốn làm là lấy toàn bộ dữ liệu trên một trong các trang Wikalary không phải tiếng Anh, và sau đó biến nội dung thành nội dung tôi có thể sử dụng cục bộ. Nó có vẻ ngớ ngẩn bây giờ, nhưng tôi đã hy vọng rằng tôi có thể yêu cầu danh sách của tất cả các từ, và sau đó kéo xuống defitions/bản dịch của họ tại một thời điểm khi cần thiết. – Armentage

+1

Việc sửa chữa để Caveat # 2 rất đơn giản: thêm '& prop = info' vào truy vấn và kiểm tra phản hồi cho thuộc tính' redirect'. – svick

+0

@svick: Vâng đúng là # 2 dễ dàng hơn để phá vỡ khi sử dụng API nhưng những điều cơ bản này cũng bao gồm việc cố gắng phân tích [tệp kết xuất dữ liệu của Wiktionary] (http://dumps.wikimedia.org/enwiktionary/), mặc dù câu hỏi này không hỏi về cách tiếp cận đó. – hippietrail

17

Bạn có thể tải về một bãi chứa của Wikitionary data. Có thêm thông tin trong số FAQ. Vì mục đích của bạn, definitions dump có lẽ là lựa chọn tốt hơn so với kết xuất xml.

+1

Các tệp kết xuất này rất lớn và không rõ tệp nào tải xuống (tất cả chúng?). Có lẽ không phải là những gì hầu hết mọi người đang tìm kiếm nó, họ chỉ muốn tìm kiếm một cách có lập trình một số ít các từ. – Cerin

+0

Tôi giải thích tệp cần tải xuống - nghĩa là kết xuất các định nghĩa (thư mục từ liên kết của tôi chỉ là các phiên bản khác nhau của cùng một tệp) và có, nếu bạn muốn tìm kiếm các từ này là lý tưởng. Nếu bạn có thể đảm bảo chương trình sẽ chỉ được thực hiện trực tuyến, có các tùy chọn khác, tuy nhiên tôi trả lời phần này của câu hỏi ban đầu: "Ngoài ra, có cách nào tôi có thể rút dữ liệu từ điển sao lưu lại Wiktionary?" – kybernetikos

+8

Định nghĩa liên kết đổ không còn khả dụng. –

6

Để giữ cho nó thực sự đơn giản, trích xuất các từ trong bãi như thế:

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

Tôi làm cách nào để có được một bản sao của các trang-articles.xml.bz2? – Armentage

+0

Nó chỉ là một tên chung tôi đã sử dụng để mô tả các bãi của biểu mẫu 'LANGwiktionary-DATE-pages-articles.xml.bz2'. Truy cập [link] (http://dumps.wikimedia.org/backup-index.html), sau đó nhấp vào 'LANGwiktionary' (LANG ví dụ' en ',' de '...). – benroth

Các vấn đề liên quan