Làm cách nào tôi có thể trích xuất các từ trong câu và xác định phần nào của bài phát biểu? [đóng cửa]


19

Tôi muốn viết một cái gì đó có một câu và xác định từng từ nó chứa và xác định phần của lời nói mỗi từ là gì.

Ví dụ

Xin chào thế giới, tôi là một câu

sẽ trả lại cái này

verb noun, pronoun verb adjective noun

Lý tưởng nhất là cuối cùng tôi muốn tiến thêm một bước và nhận một câu và lập trình để nó hiểu những gì nó đang cố gắng diễn giải và có thể làm gì đó về nó.

Vì vậy, câu hỏi của tôi là, có ai nghe nói về một cái gì đó như thế này?


2
"Xin chào" là một động từ? Ý tôi là, tôi không biết nó sẽ như thế nào nữa, nhưng nó không giống như một động từ.
Dan Ray

@DanRay: Có lẽ đó là một câu hỏi cho tiếng Anh.stackexchange.com?
StriplingWar Warrior

1
@DanRay haha, bạn thấy sao? Đó là lý do tại sao tôi đang cố gắng tìm hiểu xem một cái gì đó có thể làm điều này, vì rõ ràng tôi rất tệ về ngữ pháp.
Vinny

@Vinny - Tất nhiên là có thể. Vấn đề là ... đây là ý tưởng nghìn tỷ đô la tiếp theo, và tại thời điểm này, nó vẫn chưa được sản xuất thành sản phẩm.
Ramhound

1
@Vinny Vâng, có ai đó đã nghe nói về một cái gì đó như thế.
Tulains Córdova

Câu trả lời:


18

Đây được gọi là Xử lý ngôn ngữ tự nhiên và nó là một lĩnh vực lớn, phức tạp. Một cái gì đó giống như bạn mô tả là một thành tựu hoành tráng, và thậm chí các giải pháp tốt nhất, như Watson , không nơi nào gần hoàn hảo.

Những điều như thế này làm cho nó thách thức: "Trâu trâu Trâu trâu trâu trâu"

một câu đúng ngữ pháp trong tiếng Anh Mỹ, được sử dụng như một ví dụ về cách sử dụng từ đồng âm và từ đồng âm để tạo ra các cấu trúc ngôn ngữ phức tạp. Nó đã được thảo luận trong văn học từ năm 1972 ... Nó cũng được xuất hiện trong cuốn sách 1994 của Steven Pink, Bản năng ngôn ngữ như một ví dụ về một câu "dường như vô nghĩa" nhưng về mặt ngữ pháp ...

Ý nghĩa của câu trở nên rõ ràng hơn khi nó hiểu rằng nó sử dụng thành phố Buffalo, New York và động từ có phần không phổ biến "to trâu" (có nghĩa là "bắt nạt hoặc đe dọa"), và khi dấu câu và ngữ pháp được mở rộng để câu được mở rộng đọc như sau: "Trâu trâu mà trâu trâu, trâu trâu". Ý nghĩa càng trở nên rõ ràng hơn khi các từ đồng nghĩa được sử dụng: "Bò rừng trâu mà bò rừng trâu khác bắt nạt, tự bắt nạt bò rừng trâu".


1
Đây là những gì tôi đang tìm kiếm! Có ai nghe nói về bất cứ ai thích ứng điều này ở quy mô nhỏ hơn? Mã nguồn mở? Ví dụ về điều này đang được sử dụng trong quy mô nhỏ hơn?
Vinny

@Vinny AFAIK không có gì nhiều trong nguồn mở vì việc giải quyết các vấn đề này mang lại lợi nhuận cao cho các công ty, như phát hiện ngữ pháp MS Word. Có một số chương trình trò chuyện bot có sẵn mà tôi tin rằng mặc dù.
Ryathal

1
@Vinny Khó khăn không liên quan gì đến quy mô. Xử lý ngôn ngữ tự nhiên có độ phức tạp vốn có không giảm khi bạn giảm "thang đo".
Tulains Córdova

6

Mặc dù tách một câu và xác định tính chính xác ngữ pháp cùng với việc giải quyết vấn đề đầu tiên của bạn dễ dàng hơn vấn đề thứ hai của bạn, nhiều sự phức tạp như động từ hoặc gerunds như bơi lội, lập trình, v.v. và những rắc rối khác như vậy, nó vẫn là một thách thức - Xem Morons ' câu trả lời.

Nhưng vấn đề thứ hai của bạn - mọi người đã nỗ lực rất lớn để tìm ra một giải pháp hoàn hảo, nhưng thuật toán "diễn giải" thực sự hoàn hảo không thể thực hiện được đối với bất kỳ ngôn ngữ tự nhiên nào như tiếng Anh - có những biến thể sẽ làm hỏng thuật toán của bạn. Lĩnh vực này - sự kết hợp giữa AI, Khoa học máy tính và Ngôn ngữ học được gọi là NLP . Xem xét điều này: Ngay cả Google Dịch cũng không hoàn hảo khi "diễn giải" câu.

Nhưng tuy nhiên, đây là một lĩnh vực rất thú vị để học hỏi.


@StriplingWar Warrior Tôi chỉ muốn tương phản đầy đủ giữa hai vấn đề do OP đặt ra. Lưu ý Chỉnh sửa trên đường đi
yati sagade

4

Tôi nghĩ bạn nên bắt đầu đọc bài viết Wikipedia này:

http://en.wikipedia.org/wiki/Part-of-speech_tagging

(đây là một lĩnh vực nghiên cứu, đừng mong đợi bất kỳ giải pháp dễ dàng nào cho nó.)


2
Nên nói thêm rằng mặc dù NLP rất lớn, cứng và có thể khó điều khiển trên các máy tính ngày nay, việc gắn thẻ POS là phần dễ nhất của nó và với kích thước khối lượng đủ hoặc rất nhiều sự cống hiến và viết quy tắc thủ công, nó có thể được giải quyết gần như hoàn hảo, chắc chắn trên 99% đúng. Điều đó cũng có thể là đủ cho nhu cầu của bạn.
Kilian Foth

cảm ơn bạn, đây chính xác là những gì tôi cũng đang tìm kiếm.
Amc_rtty

thực sự dựa trên mô tả của OP, đây sẽ là câu trả lời được chấp nhận khi bạn quan sát chính xác @KilianFoth
Amc_rtty

-1

Một cách rẻ tiền để làm điều này sẽ là thiết lập một cơ sở dữ liệu của từ điển (tôi gần như tích cực rằng ai đó đã làm điều này).

Cần hai trường trong bảng: wordusage

Biến cụm từ thành một chuỗi các chuỗi, (mỗi từ là một chuỗi) và độc lập:

select 'usage' from Dictionary WHERE 'word' = $word; 

Đó là một giải pháp nặng nề, nhưng một giải pháp mà tôi đã sử dụng trong quá khứ.


5
Điều này giả định rằng mỗi từ chỉ có một POS có thể và tôi đảm bảo với bạn rằng đó hoàn toàn không phải là trường hợp.
microtherion

Đồng ý - không có cách nào điều này có thể hoạt động khả thi (ít nhất là bằng tiếng Anh) với tất cả các từ có thể đóng vai trò là danh từ, động từ, v.v., tùy thuộc vào ngữ cảnh.
Derek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.