2009-03-04 41 views
12

Tôi đang tìm một thứ có thể tồn tại hoặc không tồn tại. Có một thứ như 'công cụ quy tắc ngữ pháp tiếng Anh' có sẵn trên nền tảng Windows (đặc biệt cho một cái gì đó như .NET hay C#)?C#: Quy tắc ngữ pháp dành cho tiếng Anh?

Cụ thể, Tôi đang tìm kiếm cái gì đó sẽ có thể tham gia một câu trong 'thì tương lai' và thay đổi nó vào 'quá khứ' (dựa trên các quy tắc ngữ pháp tiếng Anh) ... như:

Làm việc trên phần mềm phụ tùng và sau đó gặp gỡ với Ricardo

này:

Làm việc trên phần mềm phụ tùng và sau đó gặp Ricardo

Có công cụ quy tắc nào đã thực hiện điều đó chưa?

+0

Câu hỏi tuyệt vời +1 cho bạn. – James

Trả lời

8

Nói chuyện với this guy, anh ấy có thể có một số ý tưởng cho bạn. Nói chung, tiếng Anh quá mơ hồ đối với loại điều này. Ví dụ:

Cắt giấy làm đôi.

Đây có phải là mệnh lệnh cấp bách hoặc đoạn câu quá khứ không? Và yêu thích cá nhân của tôi:

Thời gian bay như một mũi tên; ruồi giấm như quả chuối.

Mọi người đều có thể phân tích cú pháp đó, nhưng chỉ vì rất nhiều kiến ​​thức ngữ nghĩa.

Điều đó đang được nói, có một số điều mà có thể là giá trị xem xét, như SharpNLP

+4

Vì khi nào thì ném Chomsky vào vấn đề một giải pháp hợp lệ? Hilarious! –

2

Câu trả lời ngắn gọn là không có, động cơ phân tích cú pháp NLP chung không tồn tại.

Câu trả lời dài là "kinda", nhưng có 50 năm nghiên cứu cho thấy rằng đó là một vấn đề rất khó, trong trường hợp chung là. Có thể có một biến đổi cụ thể căng thẳng. Bất kể, C# có lẽ sẽ không có.

5

Như những người khác đã nêu, đây là một vấn đề rất khó và chưa được giải quyết trong trường hợp chung. Tuy nhiên, có một số hệ thống hoạt động khá tốt. Princeton's WordNet là một trong số họ. Nó có thể xác định các phần của lời nói, từ đồng nghĩa, vv (có lẽ bao gồm cả căng thẳng) với một mức độ chính xác nào đó. Tôi nghĩ rằng bạn có thể quan tâm đến these functions, xuất hiện để tìm gốc của một từ được chia động từ cụ thể và cũng có thể tìm được cách chia động từ gốc (nhưng trang đó không cung cấp ví dụ, vì vậy tôi không thể hãy chắc chắn tôi đang giải thích các tài liệu chính xác).

2

Kiểm tra this, gọi là Grammatica. Nó có thể không chính xác những gì bạn đang theo sau nhưng nó chắc chắn là một khởi đầu tốt để phân tích cú pháp quy tắc ngữ pháp tiếng Anh trong C#.

+0

Grammatica có vẻ như là trình tạo phân tích cú pháp tiêu chuẩn dành cho các ngôn ngữ máy tính điển hình.Những công cụ như vậy rất tệ khi phân tích tiếng Anh, rất mơ hồ, thường chứa các câu "một phần" và ngữ pháp liên tục được lập luận (thậm chí còn bị các nghệ sĩ hip-hop xoắn). Trừ khi bạn có thể trình bày ngữ pháp Grammatica cụ thể cho tiếng Anh, câu trả lời này đơn giản là sai. –

+0

Câu trả lời không sai. Như tôi đã nói đó là một khởi đầu không phải là một giải pháp hoàn chỉnh. Công cụ này là một khuôn khổ cho phép rất nhiều tinh chỉnh - rõ ràng bạn sẽ cần thêm các quy tắc ngữ pháp tiếng Anh của riêng bạn vào đó, những quy tắc mà bạn đặc biệt quan tâm. – James

+0

Mọi người đã thử sử dụng trình tạo trình phân tích cú pháp như thế này bằng tiếng Anh. Khá nhiều sự phán xét là con đường này là một thất bại. Trình phân tích cú pháp công nghệ cao gần nhất đã thử AFAIK Natural Languages ​​là GLR (không phải LL (k)), và cách tiếp cận đó đã bị hủy bỏ vào cuối những năm 80. –

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