ĐẠi học công nghệ ĐẠi học quốc gia hà NỘI


Xây dựng hệ thống đánh giá quan điểm



tải về 0.69 Mb.
trang8/10
Chuyển đổi dữ liệu08.09.2016
Kích0.69 Mb.
#31836
1   2   3   4   5   6   7   8   9   10

4.3 Xây dựng hệ thống đánh giá quan điểm


Như trong chương 2 chúng tôi đã nói đến những hệ thống gần đây, hệ thống của chúng tôi cũng được xây dựng dựa trên 3 thành phần chính: xác định từ, cụm từ chỉ quan điểm; xác định xu hướng quan điểm; và phân lớp câu chỉ quan điểm. Những phần trên được chúng tôi tách ra và xây dựng dựa trên GATE. Ở phần sau chúng tôi sẽ đi sâu vào mô tả hệ thống của mình.

4.3.1 Mô tả tổng quan hệ thống


Hệ thống đánh giá quan điểm của chúng tôi được chia thành 4 phần chính như sau:

  • Tiền xử lý: giải quyết những vấn đề cơ bản cho văn bản làm tiền đề cho bước xử lý sau.

  • Xác định từ, cụm từ chỉ quan điểm và xu hướng quan điểm của nó.

  • Xác định câu và phân lớp câu chỉ quan điểm.

  • Đánh giá các đặc tính của sản phẩm (Features) dựa trên câu.

Sau đây chúng tôi đưa ra một ví dụ để chúng ta có thể hiểu rõ hơn công việc và nhiệm vụ của từng phần.

Ví dụ dữ liệu văn bản:

HP dv 4 có thiết kế bắt mắt, ưa nhìn tuy nhiên giá quá cao.”

Sau khi tiền xử lý chúng tôi tách từ và POS tag cho văn bản:

HP dv 4 thiết kế bắt mắt, ưa nhìn tuy nhiên giá quá cao.”

Dựa trên tiền xử lý chúng tôi dùng luật để xác định các từ, cụm từ chỉ quan điểm:

HP dv 4 có thiết kế
bắt mắt
,
ưa nhìn
tuy nhiên giá quá cao.”

Sau khi đã nhận dạng được các từ, cụm từ (nếu có thêm ReverseOpinion) chỉ quan điểm chúng tôi tiến hành chia câu và xác định quan điểm của câu:


HP dv 4 có thiết kế bắt mắt, ưa nhìn
tuy nhiên giá quá cao.

Cuối cùng chúng tôi tổng hợp các câu đánh giá về Feature và hiển thị ra kết quả:

Kieudang: 1/0

Gia: 0/1

Tính hiệu quả của khung làm việc GATE cho bài toán nhận dạng thực thể đã được chứng minh qua nhiều nghiên cứu (Maynard 2001, Cao 2007), bởi vậy chúng tôi quyết định xây dựng hệ thống nhận dạng thực thể trong văn bản tiếng Việt như một thành phần tích hợp (Plugin) trên GATE nhằm tận dụng những ưu điểm mà GATE mang lại. Chúng tôi đưa ra mô hình xử lý trên GATE như sau [Hình 10]:

Hình 10 - Mô tả chi tiết hệ thống đánh giá quan điểm người dùng trên GATE

Hệ thống bao gồm 5 bộ phận chính:



Để hiểu chi tiết hơn về hệ thống đánh giá quan điểm người dùng trên văn bản tiếng Việt xây dựng trên nền GATE, chúng ta sẽ đi sâu hơn tìm hiểu về từng bộ phận của hệ thống.

4.3.2 Tiền xử lý


Một nét đặc trưng rất khác biệt của tiếng Việt so với tiếng Anh đó là vấn đề tách từ (word segmentation). Trong tiếng Anh các từ được phân biệt bởi dấu trống, tuy nhiên từ trong tiếng Việt thì không như vậy. Trong tiếng Việt chỉ coi những từ phân biệt với nhau bởi dấu trống như ở từ trong tiếng Anh là một tiếng và một từ có thể bao gồm một, hai, ba hoặc nhiều tiếng. Một tiếng có thể liên kết với từ đứng trước nó, hoặc đứng sau nó để tạo thành từ. Ví dụ như câu:

Học sinh học sinh học.”

Có thể tách câu trên như sau:

Học_sinh học sinh_học.”

hay

Học sinh_học sinh_học.”



Như vậy tiếng “sinh” có thể kết hợp với tiếng “Học” đứng trước nó để tạo thành từ “Học sinh”, hay nó còn có thể kết hợp với tiếng “học” đứng sau nó để tạo thành từ “sinh_học”.

Ngoài yêu cầu bắt buộc về một bộ tách từ, chúng tôi còn sử dụng thêm bộ gán nhãn từ loại trong giai đoạn tiền xử lý của hệ thống, nhằm cung cấp được nhiều thông tin cho các giai đoạn xử lý tiếp theo. Chúng tôi đóng gói bộ tách từ [6] thành plugin Coltech.NLP.tokenizer trong khung làm việc GATE. Nhờ đó bộ tách từ và gán nhãn từ loại có thể dễ dàng thay đổi, cải tiến mà không làm ảnh hưởng đến kiến trúc của hệ thống.

Các văn bản sau khi được xử lý bởi Coltech.NLP.tokenizer sẽ trở thành văn bản ở định dạng của GATE tức là gồm: nội dung văn bản, tập các nhãn (annotation) và tập các đặc trưng (tham khảo thêm về GATE trong chương 3). Ở đây chúng tôi chỉ tạo ra các nhãn “Word” và “Split”.


  • Mỗi nhãn (annotation) “Word” được tạo mới trên một từ gồm một vài đặc trưng như:

  • Từ loại (POS): là từ loại của từ. Ví dụ: Np, Nn v.v…(tham khảo tại phụ lục B).

  • Nội dung (string): là xâu thể hiện từ. Ví dụ: “học sinh”, “đại ca” v.v…

  • Viết hoa (upper): nếu ký tự đầu tiên của từ viết hoa thì upper = “true”. Ngược lại upper = “false”.

  • Ngoài ra còn một số đặc trưng như: kind, nation v.v…để giúp ích cho quá trình viết luật.

  • Mỗi nhãn “Split” được tạo mới trên một dấu tách câu như: “.”, “?”, “!”, cũng có những đặc trưng tương tự như nhãn “Word”.

Sau khi Coltech.NLP.tokenizer hoàn thành, chúng tôi bước vào xây dựng thành phần xử lý chính trong hệ thống gồm hai nguồn xử lý (Processing Resource):

  • Coltech.Opinion.ListOpinion như một bộ từ điển.

  • Coltech.Opinion.Rule như một bộ luật.

Hai nguồn xử lý này được xây dựng và phát triển song song cùng với quá trình tạo tập dữ liệu được gán nhãn (Annotated corpus).

4.3.3 Xây dựng bộ từ điển


Bộ từ điển (Coltech.Opinion.ListOpinion) được tạo từ nhiều từ điển với các tiêu chí khác nhau, nhằm nhận dạng một lớp các thực thể nhờ quá trình so khớp đồng thời cũng cung cấp những thông tin cần thiết cho quá trình nhận dạng trong bộ luật. Mỗi từ điển gồm các từ mang cùng một ý nghĩa nào đó, có thể là chứa các thực thể cùng loại như: từ mang nghĩa positive, từ mang nghĩa negative,… hay chứa các từ, cụm từ đóng những vai trò giống nhau về mặt cú pháp, ngữ nghĩa, hoặc chỉ đơn giản là để sử dụng cho một luật nào đó trong bộ luật. Do đây là hướng nghiên cứu mới ngay cả trên thế giới cho nên những bộ từ điển chuẩn dành cho tiếng Việt hiện tại chưa được định nghĩa. Do đó mà những bộ từ điển này được chúng tôi xây dựng nhờ những kinh nghiệm có được trong quá trình gán nhãn thủ công (bằng tay với sự hỗ trợ của phần mềm Callisto [7]), và vẫn đang được tiếp tục phát triển.

Có thể chia bộ từ điển thành các nhóm sau:



  • Những từ điển chứa các tên các thực thể trong nhận dạng Features:

    • Từ điển những từ liên quan đến cấu hình (feature trong sản phẩm về máy tính): cấu hình, hệ thống, thông số, vi xử lý, chất lượng xử lý ...

    • Từ điển những từ liên quan đến kiểu dáng: kiểu dáng, hình thức, thiết kế, thân hình, kích thước, trang trí, màu sắc …

  • Những từ điển chứa các từ dùng để viết luật xác định từ quan điểm:

    • Từ điển từ mang tính positive: tốt, tuyệt vời, hoàn hảo, nổi bật, hài lòng …

    • Từ điển từ mang tính negative: xấu, đắt, thô, phàn nàn, tù túng, thất vọng…

    • Từ điển từ làm thay đổi ý nghĩa quan điểm (Reverse Opinion): không thể, không quá, không bị, chưa được …

Coltech.Opinion.ListOpinion hoạt động tạo ra một tập các nhãn (annotation) Lookup (loại nhãn mặc định của GATE). Mỗi một nhãn Lookup được tạo mới tương ứng với một từ hoặc cụm từ của văn bản xuất hiện trong bộ từ điển (gazetteer) và chứa các đặc trưng của từ điển (bao gồm majorType và minorType). Như vậy sau hai quá trình xử lý là Coltech.NLP.tokenizer và Coltech.Opinion.ListOpinion, văn bản đã được gán ba kiểu nhãn (annotation) là: “Word”, “Split” và “Lookup” [Hình 11].

Hình 11 - GATE sau khi POS Tag và Lookup

4.3.4 Xây dựng bộ luật


Song song với quá trình xây dựng bộ từ điển (Coltech.Opinion.ListOpinion) chúng tôi tiến hành xây dựng bộ luật (Coltech.Opinion.Rule) – thành phần quan trọng nhất trong hệ thống của chúng tôi. Bộ luật sử dụng các thông tin do các thành phần khác trong hệ thống (bộ tách từ, bộ gán nhãn từ loại, bộ từ điển) cung cấp để nhận dạng các thực thể (thực thể và loại thực thể). Có thể mô tả các bước hoạt động của bộ luật do chúng tôi xây dựng như sau:

  • Tiền xử lý

  • Loại bỏ các nhãn “Lookup” không cần thiết, hoặc có thể đưa những thông tin sai cho quá trình nhận dạng.

  • Xử lý

  • Xác định những từ chỉ quan điểm và phân loại thành 2 hướng positive (PosWord) và negative (NegWord).

  • Xác định các từ dùng để so sánh CompWord.

  • Xác định câu đơn (SimpSenten) và phân loại theo 5 hướng positive (PosSen), negative (NegSen), cả hai positive và negative (MixSen), câu thông thường không mang quan điểm và câu so sánh (CompSen).

Bộ luật được phát triển dựa trên những kinh nghiệm của quá trình phân tích lỗi, hay nói cách khác nó ngày càng hoàn thiện hơn sau mỗi lần chúng tôi phát hiện lỗi và sửa lỗi. Để đảm bảo việc phát triển các luật không làm ảnh hưởng đến những thành quả đã có của hệ thống, chúng tôi luôn sử dụng unit testing trong suốt quá trình viết luật.

Đây là ví dụ về một luật được viết trên GATE của chúng tôi:

Rule: rulePositive1

Priority: 1

(

(StrongWord)

({Word.category=="O"})?

({Lookup.majorType=="positive"}):name

)

-->

:name.PosWordFirst = {kind = "StrongWord + ? +
", type="Positive", rule = "Trich chon positive"}

Luật trên có ý nghĩa:

+
-> từ mang quan điểm

4.3.4.1 Chuẩn hóa tập nhãn Lookup


Hoạt động đầu tiên của bộ luật là loại bỏ đi những nhãn Lookup chỉ là tiếng không phải là từ, không mang đúng ngữ nghĩa trong văn cảnh. Ví dụ trong 2 câu:

Macbook Pro MB471ZPA có giá quá cao. Tuy nhiên chiếc Laptop này vẫn được đánh giá cao.”

Vì trong từ điển chúng tôi xác định từ “giá” để chỉ đến Feature “giá cả” của sản phẩm cho nên khi xây dựng bộ từ điển cũng sẽ xác định luôn từ “giá” trong “đánh giá” là Feature “giá cả”. Những nhãn (annotation) như vậy bị chúng tôi loại bỏ vì nó sẽ mang lại những sai lầm trong quá trình nhận dạng.

4.3.4.2 Xác định những từ chỉ quan điểm


Đây được coi như là nhiệm vụ quan trọng có ảnh hưởng trực tiếp đến kết quả của hệ thống. Do vậy nếu như càng đánh giá được chính xác những từ chỉ quan điểm hệ thống càng có độ chính xác cao.

Những từ chỉ quan điểm được xác định dựa trên từ điển các từ chỉ quan điểm tuy nhiên có nhiều từ trong một số ngữ cảnh lại không mang ý chỉ quan điểm (như từ “thời trang”: “Phong cách rất thời trang” và “Thiết kế của máy có nét thời trang giống với chiếc xe ô tô”) hay lại vừa mang ý positive vừa mang ý negative như từ “cao” nếu nói đến cấu hình thì là positive còn nói đến giá cả thì lại là negative.

Thông thường theo một cách dễ thấy các từ mang ý chỉ quan điểm thường đi cùng với một số từ có ý nghĩa nhấn mạnh như: rất, siêu, khá… Với PosWord có những từ nhấn mạnh như: cực, đáp ứng, tương đối, luôn … Với NegWord thì lại có một số từ khác như: dễ, hơi, gây, bị … Kết hợp những từ nhấn mạnh này với những từ có trong bộ từ điển thì khả năng rất cao từ này mang ý nghĩa quan điểm. Luật mà chúng tôi đưa ra có dạng:

+


+ -> từ mang quan điểm

Hay một luật đơn giản thứ hai cần xét đến đó là những từ quan điểm hay được người dùng đánh giá bằng nhiều từ để làm rõ lên ý kiến của anh ta (cô ta) như:

Laptop cho doanh nhân Acer Aspire 3935 sử dụng thiết kế phá cách, hiện đại.”

Những từ này thường được đi cùng nhau và dùng những liên từ để nối chúng lại. Luật chúng tôi đưa ra là:

Tiếp theo phải kể đến những từ quan trọng làm thay đổi nghĩa của quan điểm. Nó có ý nghĩa quan trọng trong việc phân loại. Luật chúng tôi đưa ra cho công việc này hiểu theo một cách đơn giản có dạng:

->

Ngoài ra chúng tôi cũng áp dụng nhiều luật khác nhau để đánh giá quan điểm theo cấu trúc câu dựa vào POS tag ở tiền xử lý và mỗi luật mới lại dùng unit testing để kiểm tra và loại bỏ nếu như nó làm kết quả trở lên tồi tệ.


4.3.4.4 Xác định từ so sánh


Trong việc xác định từ so sánh chúng tôi chỉ xác định với mục đích giúp cho việc đánh giá quan điểm tốt hơn cho nên không xét những câu mang ý nghĩa quan điểm. Có nghĩa từ so sánh ở đây đứng độc lập và không kèm theo từ đánh giá quan điểm. Ví dụ: “Laptop của Acer thường có giá hơn hẳn Dell” và không xét dạng so sánh này: “Laptop của Acer có giá cao hơn Dell”

So sánh được chia làm 4 loại: so sánh hơn, so sánh kém, so sánh bằng, và so sánh nhất. Với từng loại ta có những từ đi riêng với nó và dựa trên những từ đó để xác định so sánh.



  • So sánh bằng: chẳng thua kém, giống với, tương tự như... So sánh hơn thường dựa trên những từ: hơn, hơn so với…

  • So sánh kém: kém so với, kém hơn, thua kém…

  • So sánh hơn: hơn hẳn, hơn so với, vượt qua…

  • So sánh nhất: đứng nhất, đứng đầu…

4.3.3.5 Xác định câu đơn và phân loại


Như đã nói ở chương 2 sự phức tạp ở câu là một vấn đề gây nhiều khó khăn cho việc đánh giá chính xác quan điểm. Câu càng dài lại càng khó khăn để xử lý do đó mà chúng tôi tiến hành việc chia những câu ghép thành các câu đơn đơn giản cho việc xử lý. Tuy nhiên dựa trên sự phức tạp của câu cho nên công việc này không đơn giản chúng tôi chỉ có thể tiến hành một số việc phân tách với độ chính xác tương đối.

Ngoài cách tách câu dựa vào một số dấu câu cơ bản như: “.”, “?”, “!”, “:”, “;”. Chúng tôi xét một số từ thường dùng để tách hai vế của câu như: trong khi đó, tuy nhiên… Thêm nữa là một phương pháp tách dựa trên một số luật xét theo cấu trúc câu như:

… <động từ hoặc tính từ>

thì sẽ dùng liên từ làm vị trí tách câu.

Sau khi đã tách các câu thành câu đơn, việc tiếp theo cần làm là phân loại câu đơn này theo 5 hướng:


  • Câu đánh giá positive (PosSen): chỉ gồm những từ đánh giá positive.

  • Câu đánh giá negative (NegSen): chỉ gồm những từ đánh giá negative.

  • Câu đánh giá cả hai hướng (MixSen): có cả hai loại từ đánh giá quan điểm positive và negative.

  • Câu thông thường: câu không mang từ đánh giá quan điểm nào.

  • Câu so sánh (CompSen): câu thông thường mang từ so sánh.

Đối với câu so sánh, do những câu so sánh thường nói đến sản phẩm này so với sản phẩm kia trong khi mục đích của chúng tôi hạn hẹp hơn một chút là liên quan đến các Features do đó mà chúng tôi coi như câu so sánh là một dạng của câu đánh giá quan điểm. Với mục đích như vậy nên ở câu so sánh chúng tôi coi như sản phẩm đầu tiên mà câu đem ra so sánh là sản phẩm chính của văn bản mà đã được giả thiết rằng văn bản này chỉ nói đến sản phẩm đó. Câu so sánh lúc này lại được chia làm 3 loại:

  • So sánh hơn, so sánh nhất và việc phân loại dạng câu này về dạng positive.

  • So sánh kém: phân loại về dạng negative.

  • So sánh bằng: câu thông thường.

4.3.3.6 Xây dựng đánh giá Features


Việc xây dựng đánh giá Features chính là dựa trên sự phân loại các câu đơn. Đối với những câu đơn được chia thành 2 loại PosSen và NegSen thì việc đánh giá Features trở lên dễ dàng hơn vì quan điểm lúc này đã được xác định và việc còn lại là dựa trên các entity để xác định xem câu đó có nói đến Features này hay không.

Với những câu có cả hai loại đánh giá quan điểm là MixSen chúng tôi phải xét từng thành phần trong câu và những câu này thường có dạng và chúng tôi sẽ coi như những opinion đi sau Feature gần nó chính là đánh giá về Feature đó.

Kết quả đánh giá về Feature sẽ được tính bằng đơn vị câu (không phải số từ đánh giá) là kết quả thu được khi xét những Feature ở trong các câu đã được phân loại như trên. Nếu số câu nói về positive nhiều hơn số câu negative thì Feature đó được xác định là positive và ngược lại nếu số câu negative nhiều hơn thì xác định là negative.



tải về 0.69 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   10




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương