2011-03-21 22 views
6

Tôi đang tìm cách phát âm từ bất kỳ từ nào bằng cách truy vấn một API thuộc loại nào đó. Vì Wiktionary có ích để tìm cách phát âm các từ mà tôi đã cố gắng sử dụng API của chúng, nhưng làm cách nào để phát âm một từ cụ thể?Wiktionary API để phát âm?

Trả lời

3

Wiktionary không có API riêng. MediaWiki, phần mềm mà Wiktionary chạy trên không có API nhưng hoàn toàn không biết cấu trúc và nội dung của Wiktionary.

Cách tốt nhất bạn có thể làm là sử dụng MediaWiki API để tìm trang wiki cho từ bạn muốn, sau đó xem bảng mục lục. Nếu mục lục có phần ngôn ngữ cho ngôn ngữ bạn muốn và trong đó có phần Pronunciation, sau đó sử dụng một cuộc gọi API khác để lấy số wikitext của phần đó mà bạn sẽ phải phân tích cú pháp chính mình. Nó cũng có thể sử dụng hoặc không phải các mẫu khác nhau về các từ khác nhau vì Wiktionary không ngừng phát triển.

Ngoài ra còn có danh sách gửi thư cho Wiktionary và cho MediaWiki API.

+0

Cảm ơn API đó; Tôi đã phân tích cú pháp XML các trang mục nhập từ điển trong ứng dụng của mình. – Tortoise

+0

@ Tortoise: Bạn được chào đón. Nó có lẽ sẽ dễ dàng hơn trong những ngày này nếu có một cách để làm bộ chọn kiểu jQuery trên HTML. Bạn có thể lấy HTML của toàn bộ trang hoặc một phần đơn trừ đi hầu hết các bản mẫu soạn sẵn hoặc với một số tham số URL hoặc thông qua API. – hippietrail

+0

"Phong cách jQuery" chỉ là [lộn xộn với tôi] (http://stackoverflow.com/questions/13225135/advantages-of-jquery), phải không? ;) – Tortoise

1

Đây là những gì tôi đã làm cho một tình huống tương tự.

  1. Truy cập Scraping Links With PHP. Nó sẽ dạy bạn làm thế nào để loại bỏ các liên kết bằng cách sử dụng PHP. Xin vui lòng không sao chép và dán nhưng cố gắng tìm hiểu nó.
  2. Bây giờ chúng tôi có các liên kết của mình, chúng tôi cần tách riêng các âm thanh (* .ogg) khỏi các liên kết thông thường. Chúng ta cần sử dụng hàm pathinfo trong PHP. The officual documentation for pathinfo phải là một khởi đầu tốt.
  3. Tạo XML ra khỏi kết quả.
  4. Phân phối nội dung bằng cách sử dụng Ajax hoặc bất kỳ cách nào được ưu tiên khác.

Hoặc bạn có thể dùng thử "http://api.forvo.com/demo". Có vẻ đầy hứa hẹn.

Tôi sẽ không cung cấp cho bạn câu trả lời đầy đủ! Bởi vì nó sẽ không vui vẻ nữa. Tôi hy vọng nó sẽ giúp.

+3

Giải pháp của bạn không sử dụng API nhưng thực hiện tháo dỡ thủ công. –

4

Bạn có thể xây dựng trên wiktionary dbpedia một gửi một truy vấn SPARQL như sau một đến their SPARQL endpoint:

PREFIX dc: <http://purl.org/dc/elements/1.1/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX wt:<http://wiktionary.dbpedia.org/terms/> 

SELECT DISTINCT ?spell ?pronounce 
WHERE { 
    ?spell rdfs:label "work"@en ; 
      wt:hasLangUsage ?use . 

    ?use dc:language wt:English ; 
      wt:hasPronunciation ?pronounce . 
} 

Trong trường hợp "tác phẩm" này là từ mà bạn muốn tìm kiếm chính tả.

EDIT:

Một dự án tương tự là dbnary, đó là tích cực hơn và mang lại kết quả đáng tin cậy hơn. Bạn có thể sử dụng số SPARQL endpoint với truy vấn sau:

SELECT DISTINCT ?pronun 
WHERE { 
    ?form lemon:writtenRep "work"@en ; 
     lexinfo:pronunciation ?pronun . 
} 
+0

Điểm cuối SPARQL hiện tại là một liên kết bị hỏng. Bạn có biết nếu nó chỉ là tạm thời hoặc bạn có một liên kết thay thế? Tôi đã thử truy vấn này ở nơi khác mà không có kết quả. Tôi là một fan hâm mộ của DBpedia nhưng không phải là rất am hiểu. – hippietrail

+2

@hippietrail: Điểm cuối hoạt động tốt cho tôi. –

+0

OK Tôi đã chuyển từ Seoul đến Sydney và một trong hai nó đã được sửa vào thời điểm đó hoặc vị trí của tôi đã tạo ra sự khác biệt vì một lý do nào đó. Tôi đã nhận thấy rằng chữ cái đầu tiên của cách phát âm đầu tiên luôn bị thiếu mặc dù: "work" -> '" ɜː (r) k "@ vi'; "pork" -> '" ɔː (r) k "@ en' – hippietrail

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