2012-01-16 30 views
5

Tôi cần tính các tần số từ của một tập hợp các tính từ trong một tập hợp lớn các đánh giá hỗ trợ khách hàng. Tuy nhiên tôi không muốn bao gồm những người bị phủ nhận.Các kỹ thuật để tính tần suất tính từ

Ví dụ: giả sử danh sách tính từ của tôi là: [hữu ích, thông thái, thân thiện]. Tôi muốn đảm bảo "thân thiện" không được tính trong một câu như "Người đại diện không thân thiện lắm".

Tôi có cần phải thực hiện phân tích cú pháp NLP đầy đủ của văn bản hoặc có cách tiếp cận dễ dàng hơn không? Tôi không cần độ chính xác siêu cao.

Tôi hoàn toàn không quen với NLP. Tôi hy vọng cho một cái gì đó mà không có một đường cong học tập dốc và không phải là quá trình xử lý chuyên sâu.

Cảm ơn

Trả lời

2

Nếu tất cả những gì bạn muốn là tần số tính từ, thì vấn đề tương đối đơn giản, trái ngược với một số giải pháp học tập máy móc tàn bạo, không tốt.

Wat làm gì?

Thực hiện gắn thẻ POS trên văn bản của bạn. Điều này chú thích văn bản của bạn với một phần của thẻ lời nói, vì vậy bạn sẽ có độ chính xác 95% trở lên trên đó. Bạn có thể gắn thẻ văn bản của mình bằng cách sử dụng Stanford Parser online để cảm nhận. Trình phân tích cú pháp thực sự cũng cung cấp cho bạn cấu trúc ngữ pháp, nhưng bạn chỉ quan tâm đến việc gắn thẻ.

Bạn cũng muốn đảm bảo các câu được chia nhỏ chính xác. Đối với điều này, bạn cần một ngắt câu. Nó được bao gồm với phần mềm như trình phân tích cú pháp Stanford.

Sau đó, chỉ chia nhỏ các câu, gắn thẻ chúng và đếm tất cả mọi thứ bằng thẻ ADJ hoặc bất kỳ thẻ nào mà chúng sử dụng. Nếu các thẻ không có ý nghĩa, hãy tra cứu các thẻ của Penn Treebank (Treebanks được sử dụng để đào tạo các công cụ NLP và các thẻ Penn Treebank là các thẻ phổ biến).

Làm cách nào?

Java hoặc Python là ngôn ngữ của các công cụ NLP. Python, sử dụng NLTK. Thật dễ dàng, được ghi chép và hiểu rõ.

Đối với Java, bạn có GATE, LingPipe và Stanford Parser trong số những người khác. Đó là một nỗi đau hoàn toàn trong ass để sử dụng Parser Stanford, may mắn thay tôi đã phải chịu đựng vì vậy bạn không cần phải nếu bạn chọn để đi con đường đó. Xem các ví dụ google page của tôi đối với một số mã (ở dưới cùng của trang) ví dụ với Trình phân tích cú pháp Stanford.

Tất cả?

Nah, bạn có thể muốn ngăn chặn các tính từ too- đó là nơi bạn sẽ có được hình thức gốc của một từ:

xe -> xe

tôi không thể thực sự nghĩ đến một tình huống nơi điều này là cần thiết với tính từ, nhưng nó có thể xảy ra. Khi bạn nhìn vào đầu ra của bạn nó sẽ được rõ ràng nếu bạn cần phải làm điều này. Một trình gắn thẻ/phân tích cú pháp/thẻ POS sẽ giúp bạn nhận được các từ gốc của bạn (còn gọi là lemmas).

Thêm NLP Giải thích Xem this question.

enter image description here

+0

Wow, cảm ơn rất nhiều điều đó rất hữu ích. – awinbra

+1

Nếu bạn chỉ muốn phần-của-lời nói (như nó là một tính từ?), Nó sẽ được nhanh hơn nhiều để sử dụng chỉ là một phần-of-speech tagger (như Stanford POS Tagger) chứ không phải là một phân tích cú pháp đầy đủ. Các phân tích cú pháp đầy đủ sẽ giúp nhận phạm vi phủ định đúng, nhưng bạn cũng có thể xử lý điều đó theo cách heuristically - tìm kiếm một từ khóa phủ định trong một vài từ trước trước khi gặp phải một dấu chấm câu. –

+0

Xin lỗi, tôi cần phải phân biệt rõ ràng (tagger vs parser so với những gì mỗi gói phần mềm chứa) – nflacco

2

Tùy thuộc vào nguồn dữ liệu của bạn. Nếu các câu đến từ một số loại máy phát điện, bạn có thể có thể chia chúng tự động. Nếu không, bạn sẽ cần NLP, vâng.

Phân tích cú pháp ngôn ngữ tự nhiên đúng cách khá nhiều là một vấn đề mở. Nó hoạt động "phần lớn" cho tiếng Anh, đặc biệt là kể từ khi câu tiếng Anh có xu hướng dính vào thứ tự SVO. Ví dụ, tiếng Đức là khá khó chịu ở đây, vì các đơn đặt hàng từ khác nhau truyền đạt sự nhấn mạnh khác nhau (và do đó có thể truyền đạt ý nghĩa khác nhau, đặc biệt khi được sử dụng mỉa mai). Ngoài ra, Đức có xu hướng sử dụng mệnh đề cấp dưới nhiều hơn nữa.

NLP rõ ràng là con đường để đi. Ít nhất một số trình phân tích cú pháp cơ bản sẽ là cần thiết. Nó cũng thực sự phụ thuộc vào nhiệm vụ của bạn: bạn có cần đảm bảo mọi thứ đều đúng, hay là một cách tiếp cận xác suất đủ tốt? Các trường hợp "khó khăn" có thể bị loại bỏ hoặc ăn cho một người để xem xét không? vv.

+0

Câu là các đánh giá văn bản dạng tự do, do đó không có định dạng thông thường cho chúng. Tôi không cần phải đảm bảo mọi người đều đúng, cách tiếp cận xác suất có thể đủ tốt. – awinbra

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