2010-05-19 40 views
5

Một số ngôn ngữ, đặc biệt là ngôn ngữ Slav, thay đổi phần cuối của tên người theo bối cảnh ngữ pháp. (Đối với những người bạn biết ngữ pháp hoặc học ngôn ngữ thực hiện điều này với các từ, như tiếng Đức hoặc tiếng Nga, và để trợ giúp với từ khóa tìm kiếm, tôi đang nói về danh từ.)Ngữ pháp ngôn ngữ tự nhiên và tên do người dùng nhập

Đây có lẽ là cách dễ nhất ví dụ (bằng tiếng Ba Lan, để tiết kiệm toàn bộ vấn đề khác nhau-bảng chữ cái):

  1. Dorothy thấy con mèo - Dorota zobaczyła kota
  2. Con mèo thấy Dorothy - Kot zobaczył Dorotę
  3. Đó là Con mèo của Dorothy - Để đùa kot Doroty
  4. Tôi đưa con mèo để Dorothy - Dalam kota Dorotie
  5. tôi đã đi dạo với Dorothy - Poszłam na spacer z Dorota
  6. “Xin chào, Dorothy!” - “Witam, Doroto!”

Bây giờ, nếu, trong những ví dụ này, tên ở đây phải được người dùng nhập vào, giới thiệu một thế giới của những cơn ác mộng ngữ pháp. Quan trọng hơn, nếu tôi đi cho Katie (Kasia), các examples are not directly comparable-3 và 4 đều Kasi, chứ không phải là * Kasy* Kasie - và tên nam sẽ wholly different again.

Tôi đoán ai đó đã xử lý tình huống này trước đây, nhưng Google-fu của tôi dường như yếu đuối hôm nay. Tôi có thể tìm thấy rất nhiều liên kết về xử lý ngôn ngữ tự nhiên, nhưng tôi không nghĩ đó là điều tôi muốn. Để rõ ràng: Tôi sẽ chỉ có một tên người dùng nhập cho mỗi người dùng và tôi sẽ cần phải từ chối chúng thành các cấu hình đã biết - Tôi sẽ có văn bản được bản địa hóa sẽ có phần giữ chỗ như {name nominative}{name dative}, cho vì lý do. Tôi thực sự không muốn phải phân tích từ ngữ văn bản để làm việc, tôi sẽ chỉ cần từ chối một tên người dùng đã nhập.

Bất cứ ai có bất kỳ khuyến cáo về cách để làm điều này, hay tôi cần phải bắt đầu kêu gọi các cơ quan nội địa hóa tròn; o)


Đọc thêm (tất cả trên Wikipedia) cho quan tâm:

Disclaimer: Tôi biết điều này sẽ xảy ra trong nhiều ngôn ngữ khác; làm nổi bật ngôn ngữ Slav chỉ đơn thuần là vì tôi có một dự án sẽ được bản địa hóa thành một số ngôn ngữ Slav.

+0

chỉ cần lưu ý nhanh: (Đối với những người biết ngữ pháp hoặc nghiên cứu ngôn ngữ thực hiện điều này, chẳng hạn như tiếng Đức hoặc tiếng Nga và để trợ giúp với từ khóa tìm kiếm, tôi đang nói về danh từ biến đổi.) bạn có chắc chắn rằng điều này được thực hiện bằng tiếng Đức không ?? – RoflcoptrException

+0

Trong tiếng Đức, danh từ chung thay đổi theo trường hợp của chúng, nhưng danh từ thích hợp (kể cả tên của người khác) thì không. –

+0

@ Sebi: Tommy là chính xác. Danh từ (và đại từ) biến đổi không xảy ra bằng tiếng Đức, nhưng không xảy ra với tên riêng hoặc tên riêng. Tương đương ở Đức là der Tisch> den Tisch> des Tisches> dem Tische, ví dụ. –

Trả lời

1

bằng tiếng Đức điều duy nhất được sửa đổi là bài viết: Der, Die, Das. Và tên không có chúng. Vì vậy, không có gì lạ mắt về tiếng Đức. (btw nó không phải là Slavic)

về tiếng Nga (bản địa của tôi). toàn bộ khái niệm thay đổi kết thúc này rất đau đớn để xử lý, nhưng (!) nếu bạn chỉ có tên của người đó và bạn có gợi ý như {name nomative} thì nó tương đối dễ. Đa số các tên nữ có cấu trúc chung: root + a/ya (а/я), và mỗi gợi ý sẽ cho bạn rool xác định cách thay đổi kết thúc. Tôi thấy rằng trong tiếng Ba Lan, nó giống nhau: Dorot | a, Dorot | ę. Tên nam cũng đơn giản. Chúng tuân theo chính xác các quy tắc (nếu kết thúc bằng/ya (а/я)) hoặc nếu chúng kết thúc bằng j/y (như tên của tôi là Andrey) thì ánh xạ hơi khác một chút.

+1

Cảm ơn, Andrey. Vì vậy, bạn có nghĩ rằng thực sự sẽ dễ dàng hơn để xây dựng một công cụ ngữ pháp tương đối đơn giản phân tích tên và làm việc ra các sự suy giảm? Tôi có thể thấy rằng nó sẽ không * rất * khó khăn để xây dựng một bảng tra cứu cho kết thúc tên, nhưng tôi lo lắng về sự khác biệt giữa Kasia (Kasię, Kasi, Kasi, Kasią) và Dorota (Dorotę) , Doroty, Dorotie, Dorotą), nơi tôi không thể dự đoán được genitive (генитив) và dative (датив) chỉ đơn giản là từ chúng là tên nữ kết thúc bằng -a. –

+0

@Owen Blacker http://en.wikipedia.org/wiki/Russian_grammar#First_declension_-_masculine_nouns các bảng sau đây cung cấp cho bạn tham chiếu tốt đẹp. xin lỗi, nhưng tôi cảm thấy rằng tôi không hiểu mục tiêu cuối cùng của bạn và những gì được trao cho nhiệm vụ của bạn. – Andrey

+0

@Andrey: Vì vậy, nó là đáng tin cậy rằng tất cả các tên nam sẽ được trong phụ âm/а/у/а/ом/е mô hình (vì vậy bạn là Андреий Андреия Андреию Андреия Андреием Андреии) và tên nữ tất cả sẽ được trong а/ы/е/у/ой/е mẫu trừ khi họ kết thúc bằng ь? Vì vậy, Артур Артура Артуру Артура Артуром Артуре. Nhưng những gì về Илья? Я không phải là một trong những nhân vật được đề cập trong sự biến đổi đầu tiên. Ngoài ra Екатерина trở thành Екатерины Екатерине Екатерину Екатериной Екатерине và Любовь sẽ từ chối Любовьи Любовьи Любовь Любовью Любовьи. Điều gì sẽ xảy ra nếu một cô gái được gọi là Нелли, tôi sẽ sử dụng loại biến cách nào sau đó? Vẫn còn nhầm lẫn…: oS –

1

Dường như với tôi giống như bạn muốn có một công cụ hình thái học để đánh bóng. Trong ngắn hạn, họ có thể làm cả phân tích và tạo ra từ dạng bề mặt (những gì chúng ta đọc và viết) thành một dạng trừu tượng nào đó, như "Dorothy + FEM + DAT", xem xét cả sự biến đổi và ngữ âm.

Hãy xem ở đây (im không đánh bóng nhưng có vẻ tốt, và imporantly nhất nó có tải :)) http://nlp.ipipan.waw.pl/~wolinski/morfeusz/

Here là một số giới thiệu về đề tài này.

+0

Tôi nghĩ rằng tôi đang nhận được khá ra khỏi chiều sâu của tôi ở đây. Tôi nghĩ bạn nói đúng - Tôi cần một loại hình thái học nào đó (đó là tiếng Nga tôi thực sự cần, không phải tiếng Ba Lan, mà tôi chỉ sử dụng cho các ví dụ, để tránh nhầm lẫn người với Cyrillic trong ví dụ). Nhưng tôi không cần cái gì phức tạp như phân tích hình thái học. Tôi biết văn bản đầu vào có thể được giả định là tên (và chúng tôi có thể hỏi người dùng về giới tính, nếu cần). Tôi chỉ cần để có thể làm một cái gì đó như: Kasia + FEM + GEN = Kasi nhưng Dorota + FEM + GEN = Doroty. Tôi nghĩ rằng một công cụ hình thái đầy đủ có thể là quá mức cần thiết ở đây, có lẽ? –

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