Để minh họa cho tiềm năng khai thác các nguổn tri thức từ những nguồn thông tin trên Wikipedia, lấy một ví dụ cụ thể về giá trị thông tin từ bài viết trên Wikipedia mà ta có thể tìm thấy
Giới thiệu
Ngày nay, Internet đóng một vai trò quan trọng trong việc lưu trữ và truyền tải thông tin của nhân loại Bên cạnh đó, với công nghệ thông tin ngày càng phát triển, con người dễ dàng hơn bao giờ hết trong việc tiếp nhận và truyền tải các nội dung mong muốn cho cộng đồng dưới dạng số Việc này dẫn đến sự bùng nổ thông tin trên internet Tuy nhiên, ngoài những lợi ích mà internet đem lại, con người lại dễ dàng bị nhầm lẫn và lạc lối trong quá trình tìm kiếm những thông tin cần thiết giữa nguồn tri thức khổng lồ như vậy
Các trang web phần lớn thuộc dạng phi hoặc bán cấu trúc, chiếm đến 80% lượng dữ liệu trực tuyến Chúng thường chứa nhiều thông tin dạng văn bản và hình ảnh, dễ đọc và hiểu đối với người dùng.
Trước nhu cầu khai thác tri thức ngày càng cần phải nhanh chóng và chính xác, các công cụ trợ giúp có thể tự động đọc hiểu và rút trích các thông tin quan trọng từ các tài liệu trên web là không thể thiếu Điều này thúc đẩy nhiều kỹ thuật và ứng dụng ra đời trong đó các phương pháp xử lý ngôn ngữ tự nhiên (Nature Language Processing) giúp cho máy tính phần nào hiểu được ngôn ngữ con người
Trong phạm vi luận án, việc khai thác tri thức từ nguồn thông tin khổng lồ trên trang Wikipedia được chúng tôi chọn trọng tâm chính (xem thêm về Wikipedia và infobox ở phần 2.1) Vì Wikipedia là một trong những hệ thống thông tin mở với nguồn dữ liệu phong phú, đang còn rất nhiều nguồn tri thức có giá trị chưa được khai thác hết từ đó Hướng tiếp cận của luận án là tìm hiểu những
2 phương pháp và kỹ thuật để có thể rút trích thông tin cần thiết từ bài viết trên Wikipedia với rất nhiều các thông tin hỗn độn được trình bày trong văn bản đó Để minh họa cho tiềm năng khai thác các nguổn tri thức từ những nguồn thông tin trên Wikipedia, lấy một ví dụ cụ thể về giá trị thông tin từ bài viết trên Wikipedia mà ta có thể tìm thấy được; trong bài viết về Albert Einstein 1 trên
Wikipedia, ta có thể tìm thấy một câu trong đó “His father was Hermann Einstein, a sales…”, dựa vào câu này có thể cho ta một thông tin quan trọng là cha của Albert Einstein là Hermann Einstein (theo như Hình 1-1) Ví dụ trên là một trong rất nhiều những dạng tri thức tiềm năng mà các kỹ thuật liên quan đến việc xử lý ngôn ngữ tự nhiên có thể giải quyết
Hình 1-1: Khai thác tri thức từ nội dung văn bản của bài viết trên Wikipedia.
Bài toán và phạm vi
Từ những nghiên cứu liên quan đến việc khai thác rút trích thông tin có giá trị từ văn bản Mục tiêu chính của đề tài tập trung vào việc nâng cao giá trị cho nguồn thông tin infobox, là một dạng dữ liệu có tính cấu trúc cao và đóng vai trò rất quan trọng trên Wikipedia (xem giới thiệu về Wikipedia và infobox ở phần 2.1) Dựa vào quá trình tìm hiểu các đề tài liên quan, nội dung của luận văn này
1 http://en.wikipedia.org/wiki/Albert_Einstein
3 xoay quanh việc bổ sung giá trị cho thuộc tính còn trống cho infobox Vì trong thực tế cho thấy còn một phần thông tin không được người viết bài trên wikipedia đưa vào infobox dù thông tin đó vẫn có trong nội dung bài viết đó với những lý do khác nhau rơi vào trong những trường hợp phổ biến như:
- Người viết không chủ động đưa thông tin vào infobox
Do infobox thường được chép từ những bài viết khác để tiết kiệm thời gian, nên có thể có những thuộc tính mà người viết không biết là có tồn tại để bổ sung giá trị.
Lấy ví dụ từ một bài viết trên Wikipedia là Showdown (Dekker novel) theo như
Hình 1-2, người viết bài đã điền vào infobox một số thông tin cho cuốn sách này, đó là author, county và language Tuy nhiên, nếu đọc chi tiết trong bài viết, ta còn có thể tìm được những thông tin có giá trị khác đó là dữ liệu về series, genre(s) và publication date Trong phạm vi luận án này, chúng tôi tập trung vào việc rút trích những thông tin có giá trị chưa được khai thác từ bài viết trên Wikipedia để bổ sung cho infobox
Hình 1-2: Ví dụ minh họa về việc bổ sung giá trị thuộc tính mới từ bài viết
Trong quá trình tìm hiểu các kỹ thuật liên quan, chúng tôi đã nghiên cứu sâu về iPopular và WAVE, hai phương pháp tiêu biểu giải quyết vấn đề trích xuất giá trị thuộc tính Luận án tập trung tìm hiểu, hiện thực và đánh giá hai phương pháp này trên các tập thực nghiệm So sánh và phân tích ưu nhược điểm, chúng tôi đề xuất phương pháp kết hợp hiệu quả trích xuất giá trị thuộc tính của WAVE với khả năng phân tích cấu trúc giá trị thuộc tính của iPopular Mục tiêu của luận văn bao gồm: nghiên cứu sâu hai phương pháp iPopular và WAVE, kết hợp ưu điểm của cả hai để đề xuất phương pháp hiệu quả hơn.
- Hiện thực, đánh giá và so sánh hai phương pháp iPopular và WAVE trong việc rút trích các giá trị thuộc tính trên các tập thực nghiệm của nhau
- Đề xuất phương pháp kết hợp cải tiến, đánh giá hiệu năng của phương pháp mới so với hai phương pháp iPopular và WAVE
Infobox và Wikipedia
Wikipedia là một trong những nguồn tri thức mở lớn nhất và cũng là bộ từ điển bách khoa toàn thư đầy đủ nhất trên internet hiện nay Website này có mật độ truy cập xếp hạng thứ 6 toàn cầu trên trang alexa.com (tháng 12/2013) Wikipedia hiện hỗ trợ trên 280 ngôn ngữ khác nhau, và có hơn 3.5 triệu bài viết (thống kê tháng 6/2011) Bên cạnh thành công và lợi ích từ nguồn dữ liệu khổng lồ này, nó cũng còn hạn chế về việc khai thác thông tin và còn rất nhiều tiềm năng từ nguồn thông tin cộng đồng này chưa được khai thác hết
Kể từ khi Wikipedia xuất hiện, nhiều nghiên cứu đã tập trung vào việc khai thác thông tin từ nền tảng này Trong nghiên cứu của chúng tôi, chúng tôi sử dụng cơ sở dữ liệu Wikipedia từ ngày 15 tháng 1 năm 2011 làm cơ sở tri thức Dữ liệu này cung cấp nền tảng cho việc huấn luyện và đánh giá các phương pháp trích xuất giá trị thuộc tính từ nội dung bài viết, giúp nâng cao hiệu quả sử dụng Wikipedia làm nguồn thông tin.
Infobox là một cấu trúc thông tin được sử dụng trong các bài viết của Wikipedia Đây là nơi tập trung các thông tin cô đọng, các tính chất đặc trưng nhất của chủ thể được đề cập đến trong bài viết Infobox được thể hiện dưới dạng một hộp thông tin có hình ảnh, mô tả, và các cặp thuộc tính-giá trị về chủ thể trong bài viết Hình 2-1 là hình ảnh ví dụ của một infobox trong bài viết trên Wikipedia
Mỗi infobox được xây dựng theo một infobox template, các infobox template là một tập hợp những biểu mẫu để phân loại infobox trên Wikipedia Infobox template quy ước và liệt kê tất các thuộc tính có thể có của một infobox bất kỳ
Người viết bài sẽ bổ sung giá trị cho các thuộc tính này trên một infobox tương
6 ứng (nếu có) Ví dụ infobox Elvis Presley (Hình 2-1) với infobox template là musical artist (Hình 2-2).
Hình 2-1: Một ví dụ về bài viết có infobox về Elvis Presley.
Gom cụm dữ liệu với thuật toán k-means
K-means là thuật toán rất quan trọng và được sử dụng phổ biến trong kỹ thuật phân cụm Tư tưởng chính của thuật toán k-means là tìm cách phân nhóm các đối tượng (objects) đã cho vào k cụm (k là số các cụm được xác định trước, k nguyên dương) sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm nhóm (centroid) là nhỏ nhất Hình 2-3 minh họa cho phương pháp gom cụm với các chấm là các đối tượng trong không gian, các chấm đen là tâm điểm của các cụm đã được phân tích trong giải thuật
Hình 2-2: Infobox template Musical Artist.
Hình 2-3: Phương pháp gọm cụm dữ liệu Trích từ [17]
8 Trong kỹ thuật gom cụm, có một số độ đo phổ biến được sử dụng như:
Minkowski, Euclidean, cosin hai vector Trong nội dung luận án, các đối tượng ở đây là các câu trong bài viết Vì vậy để tính toán sự giống nhau giữa các câu trong các cụm, phương pháp WAVE sử dụng độ đo tương đồng trong mô hình không gian vector [22] Hay nói cách khác đó chính là độ đo được tính dựa trên kết quả cosin hai vector trong không gian vector:
* Với v và w là hai vector trong không gian vector.
Phân loại thuộc tính đơn thành phần và đa thành phần
Các giá trị của một thuộc tính trên infobox đều có thể xuất hiện dưới nhiều dạng khác nhau tùy theo tính chất của thuộc tính đó Giá trị của thuộc tính có thể là dạng chuỗi ký tự, số, ngày tháng, danh sách,… Tuy các giá trị có nhiều định dạng khác nhau nhưng chúng đều được phân thành một trong hai loại giá trị thuộc tính sau đây tùy vào kết cấu giá trị của thuộc tính đó gồm một hay nhiều thành phần cấu tạo nên:
- Thuộc tính có cấu trúc giá trị chỉ gồm một thành phần: là giá trị thuộc tính gồm một cụm duy nhất, không thể tách thành những phần khác nhau có nghĩa được Lấy ví dụ một số các thuộc tính và giá trị gồm một thành phần trên Wikipedia như: o name: Apple Inc o type: [[Public company|Public]] o website: {{URL|https://www.apple.com}} o …
- Thuộc tính có cấu trúc giá trị gồm nhiều thành phần: là giá trị thuộc tính mà ta có thể tách ra làm các thành phần khác nhau có nghĩa, để khi ghép các thành phần đó lại ta được một giá trị thuộc tính hoàn chỉnh Lấy ví dụ một số các thuộc tính và giá trị gồm nhiều thành phần trên Wikipedia như: o founder: Steve Jobs, Steve Wozniak, Ronald Wayne
Mỗi thuộc tính trên infobox đều có giá trị được cấu thành từ một hoặc nhiều thành phần, do đó được phân loại thành thuộc tính cấu trúc đơn thành phần hoặc đa thành phần Phân loại này nhằm giúp nâng cao khả năng trích xuất giá trị thuộc tính từ bài viết thông qua các thành phần của chúng Đây cũng là nền tảng mà phương pháp iPopular và phương pháp kết hợp tận dụng để nâng cao hiệu quả.
Phân tách cấu trúc giá trị của thuộc tính trên infobox
iPopular sử dụng giải thuật để phân tích cấu trúc giá trị của các thuộc tính, nhằm tìm ra cấu trúc chung nhất chứa đựng hầu hết các giá trị của thuộc tính đó Cấu trúc này có thể chia giá trị thành các thành phần và ghép lại để tạo thành giá trị đầy đủ Quá trình phân tích cấu trúc tương tự như tìm biểu thức chính quy từ các mẫu ví dụ.
Giải thuật phân tích cấu trúc của iPopular là dạng rút gọn của biểu thức chính quy, giúp phân tích giá trị thuộc tính (ví dụ bảng A-D, Hình 2-4) Giải thuật xác định mẫu trong giá trị thuộc tính (bảng B), sắp xếp và đếm tần suất xuất hiện (bảng C) Cuối cùng, giải thuật trả về các mẫu xuất hiện nhiều nhất theo thứ tự giảm dần (bảng D).
10 mẫu quan trọng nhất được hợp nhất thành kết quả cuối cùng, một dạng biểu mẫu chính quy bắt đầu với những mẫu quan trọng nhất (bước c) Trong trường hợp nếu không có đủ số lượng giá trị thuộc tính cho việc phân tích cấu trúc thuộc tính, giải thuật sẽ bỏ qua các thuộc tính này, đảm bảo khả năng chính xác cao của hệ thống.
Thuật toán phân tích cấu trúc giá trị thuộc tính được trình bày ở Hình 2-5 và nội dung chi tiết được tiếp tục ở các nội dung tiếp theo Đầu vào của thuật toán là tập hợp các giá trị của một thuộc tính (tập hợp V), đầu ra là cấu trúc chung của các giá trị thuộc tính được phân tích.
Hình 2-4: Một ví dụ trong việc phân tích cấu trúc của thuộc tính number_of_employees từ infobox_company Trích từ [11]
Hàm Parse() Từng giá trị trong tập V sẽ được phân tách thành các mẫu của giá trị thuộc tính (pattern) Các mẫu này sẽ giúp chia giá trị thuộc tính thành những thành phần có nghĩa Điều đó giúp ta có thể đánh nhãn những thành phần riêng biệt của giá trị thuộc tính Từ một mẫu ta có thể dễ dàng phân biệt các nhóm chuỗi có với các nhóm số hoặc các ký tự đặc trưng của Wikipedia như đường dẫn, các quy ước định dạng trong viết bài Để thực hiện được điều trên, các dấu ngoặc, dấu chấm, dấu phẩy hoặc các ký hiệu khác sẽ được đánh dấu Hàm Parse sử dụng biểu thức chính quy cho mỗi loại trên
Hàm IsImportantPattern() Với mỗi thuộc tính, có rất nhiều các mẫu khác nhau thể hiện các giá trị của thuộc tính đó Nếu tất cả các mẫu được thể hiện trong một cấu trúc thuộc tính duy nhất, thì kết quả của cấu trúc này sẽ rất phức tạp không thể thực hiện được Vì vậy ta chỉ xem xét những mẫu nào phổ biến nhất, vì vậy cấu trúc cuối cùng của thuộc tính chỉ bao gồm một số các thành phần quan trọng của thuộc tính Với các mẫu ít phổ biết, hàm IsImportantPattern() sẽ loại bỏ tương ứng với giá trị trả về là false Tương tự giá trị trả về là true nếu mẫu có số lượng giá trị tương ứng nhiều hơn 20 giá trị và chiếm hơn một phần trăm trong tổng số giá trị của thuộc tính Và trong trường hợp nếu thuộc tính nào đó không đủ số lượng các giá trị cần thiết, sẽ không xem xét thuộc tính đó.
Hình 2-5: Giải thuật phân tích cấu trúc Trích từ [11].
Hàm Merge() Có nhiệm vụ xáp nhập mẫu đang xét (merging candidate) với cấu trúc của giá trị thuộc tính hiện tại đang xây dụng (basic pattern) Để xáp nhập hai mẫu ta thực hiện các luật sau:
Luật 1: Mở rộng cấu trúc thuộc tính - Điều kiện: Các mẫu đang xét bao gồm và mở rộng mẫu kết quả hiện tại
12 - Hành động: Những thành phần mới trong mẫu đang xét được thêm vào mẫu kết quả hiện tại và đánh dấu là phần phụ (thêm vào dấu ?)
- Ví dụ: Xáp nhập mẫu kết quả hiện tại (Text) với mẫu đang xét (Text
“(“Number”)”) cho ta kết quả là (Text (“(“Number”)”)?)
Luật 2: Nhận dạng cấu trúc thuộc tính dạng danh sách
- Điều kiện: Kết quả cấu trúc giá trị của thuộc tính chứa từ 3 trở lên các thành phần lập lại giống nhau và ít nhất 2 mẫu trong cấu trúc giá trị thuộc tính được đánh dấu là thành phần phụ Các thành phần được tách nhau bằng một dấu câu (ví dụ dấu phẩy)
- Hành động: cấu trúc dạng danh sách sẽ được thể hiện thay vào đó (bằng cách thêm dấu * vào thành phần lặp)
- Ví dụ: Giá trị của một infobox film có thể là [[Humphrey Bogart]], [[Ingrid
Bergman]], [[Paul Henreid]] Trong trường hợp này, mẫu kết quả tương ứng với giá trị đó là (Link (Separator Link)*)
Nếu trong trường hợp tất cả hai luật trên không sử đụng được để xáp nhập một mẫu với cấu trúc giá trị thuộc tính hiện tại, thì mẫu đó sẽ bị loại và không xem xét đến nữa.
Thuật toán entropy cực đại
Đối với bài toán phân lớp dữ liệu, entropy cực đại là một kỹ thuật dùng để ước lượng xác suất các phân phối từ dữ liệu Tư tưởng chủ đạo của nguyên lý entropy cực đại là “mô hình phân phối đối với mỗi tập dữ liệu và tập các ràng buộc đi cùng phải đạt được độ cân bằng / đều nhất có thể” Tập dữ liệu học (tức là tập gồm các dữ liệu đã được gán nhãn) được sử dụng để tìm ra các ràng buộc cho mô hình, đó là cơ sở để ước lượng phân phối cho từng lớp cụ thể Những ràng buộc này được thể hiện bởi các giá trị ước lượng được của các đặc trưng Từ các ràng buộc sinh ra bởi tập dữ liệu này, mô hình sẽ tiến hành tính toán để có được một phân phối cho entropy cực đại
13 Ta lấy một ví dụ về mô hình entropy cực đại: Giả sử với bộ phân lớp về lĩnh vực kinh tế trên báo VnEconomy có bốn lớp chính được chỉ ra là ngân_hàng, chứng_khoán, bất_động_sản, doanh_nghiệp Các thống kê dữ liệu chỉ ra rằng trung bình 70% các tài liệu trong lớp ngân_hàng có chứa từ “vay vốn” Như vậy một cách trực quan có thể thấy rằng nếu một tài liệu D có chứa từ “vay vốn” thì xác suất được phân vào lớp ngân_hàng là 70% và xác suất phân vào ba lớp còn lại là 10% đối với mỗi lớp Nếu tài liệu D không chứa từ “vay vốn” thì xác suất phân phối của D là 25% đều cho mỗi lớp Trong ví dụ trên, nếu tài liệu chứa cụm từ “vay vốn” thì có xác suất phân vào lớp ngân_hàng là 70% là một ràng buộc của mô hình
Các ràng buộc và đặc trưng
Trong nguyên lý Entropy cực đại, chúng ta sử dụng tập dữ liệu mẫu làm để thiết lập ràng buộc cho phân phối điều kiện Với mỗi ràng buộc được mô tả bởi một đặc tính của tập dữ liệu học Một đặc trưng trong mô hình entropy cực đại được biểu diễn bởi một hàm fi(d, c), trong đó d là tài liệu và c là lớp Entropy cực đại cho phép giới hạn mô hình phân phối để có thu các giá trị kỳ vọng cho mỗi đặc trưng của tập dữ liệu Vì vậy, ta có thể đặt xác suất phân phối của dữ liệu d cho lớp c là P(c|d) thỏa mãn phương trình sau:
Trong quá trình huấn luyện, phân phối dữ liệu thật P(d) thường không được biết và không ảnh hưởng đến việc học của mô hình Do đó, các bài toán học máy chỉ dựa vào tập dữ liệu mẫu để ước lượng một phân phối dữ liệu tuân theo các ràng buộc nhất định.
Mô hình entropy cực đại
Mô hình entropy cực đại xây dựng các đặc trưng từ tập dữ liệu huấn luyện
Mỗi đặc trưng được biểu diễn dưới một hàm nhận một trong hai giá trị đúng hoặc
Các ràng buộc được thiết lập từ các đặc trưng của dữ liệu, buộc mô hình phải thỏa mãn các điều kiện nhất định Mỗi đặc trưng fi được chỉ định một trọng số λi tương ứng Quá trình phân lớp được chuyển đổi thành bài toán ước lượng xác suất có điều kiện.
Trong đó Z(d) là biểu thức chuẩn hóa để đảm bảo điều kiện Σp(c | d ) = 1
Từ đó đưa ra công thức sau:
Entropy cực đại cho phân lớp văn bản Để áp dụng mô hình entropy cực đại cho một miền, chúng ta cần phải chọn ra một tập các đặc trưng để sử dụng thiết lập các ràng buộc Đối với phân lớp văn bản với mô hình Entropy cực đại, chúng ta sử dụng số lượng từ như là các đặc trưng Trong nghiên cứu này cho với mỗi từ kết hợp, ta đưa ra một đặc tính như sau:
Trong đó, N(d, w) là số lần từ w xuất hiện trong tài liệu d, và N(d) là số lượng các từ có trong tài liệu d
Trong công thức này, nếu một từ xuất hiện thường xuyên trong một tài liệu, ta sẽ tính trọng số cho các cặp từ này và thấy rằng trọng số đó sẽ cao hơn so với trọng số của các từ ghép trong tài liệu Trong hầu hết ngôn ngữ tự nhiên sử dụng entropy cực đại thì các đặc trưng thường là đặc trưng nhị phân Trong phân lớp văn bản, chúng ta mong muốn các đặc trưng được tính bằng số lần suất hiện của một từ trong một tài liệu có thể củng cố cho phân lớp
Một đặc điểm quan trọng của entropy cực đại là không bị ràng buộc bởi bất kỳ giả thuyết độc lập nào Thay vì đếm số lần xuất hiện như giả thiết Bayes ngây thơ, entropy cực đại giảm giá trị trọng số của mỗi tính năng đi một nửa Nhờ tính chất không phụ thuộc này, bạn có thể dễ dàng thêm các mẫu và cụm từ vào các tính năng của entropy cực đại mà không lo sợ sự chồng chéo.
- Cho phép khả năng hầu như không hạn chế trong việc biểu diễn các vấn đề phức tạp về tri thức thông qua dạng các hàm đặc trưng
- Có thể giải quyết nhiều dạng thuộc tính khác nhau
- Các giả thiết không cần phải độc lập với nhau
- Trọng số của các đặc trưng được xác định một cách tự động.
Các độ đo căn bản
Trong việc đánh giá hiệu suất một phương pháp, thông thường các độ đo căn bản được sử dụng là: độ chính xác, độ đầy đủ và độ hài hòa Việc hiện thực hóa các độ đo này có thể khác nhau tùy mục đích của người sử dụng chúng nhằm phù hợp với từng bài toán trong thực tế Trong phần này, chúng tôi chỉ nêu lên khái niệm tổng quan về các độ đo căn bản, còn chi tiết về việc hiện thực các độ đo hiệu suất này trong quá trình thực hiện luận văn trong từng phương pháp sẽ được nêu trong phần 4.2
Ví dụ được ta có một số các câu hỏi, mỗi câu hỏi đều có một đáp án đúng
Một hệ thống trả lời tự động có thể đưa ra câu trả lời cho các câu hỏi mà không cần biết đáp án Hiệu quả của hệ thống này được đánh giá bằng khả năng cung cấp câu trả lời có liên quan và chính xác Để đo lường hiệu quả, các ký hiệu sau được sử dụng:
- T all : tổng số câu hỏi
16 - T C : số câu hỏi được hệ thống trả lời và đúng với đáp án
- T R : tổng số câu hỏi được hệ thống trả lời Độ chính xác P (Precision): Độ chính xác P là tỉ lệ giữa số câu hỏi mà hệ thống đó trả lời đúng và tổng số câu hỏi mà hệ thống đã trả lời Công thức như sau: Độ đầy đủ R (Recall): Độ đầy đủ R là tỉ lệ giữa số câu hỏi mà hệ thống trả lời đúng và tổng số câu hỏi Công thức như sau: Độ hài hòa F (Harmonic Mean): Độ hài hòa F được đưa ra nhằm cân bằng giữa độ chính xác P và độ đầy đủ R vì nếu ta chỉ xét riêng độ chính xác và độ đầy đủ không thể đánh giá được hiệu suất của hệ thống một cách toàn diện Công thức độ hài hòa F được xác định như sau: Để minh chứng cho việc sử dụng độ đo hài hòa F là cần thiết, ta xét hai trường hợp điển hình: đầu tiên là một hệ thống có độ chính xác cao nhưng độ đầy đủ thấp Điều đó đồng nghĩa với việc câu hỏi hệ thống đều trả lời hầu như đúng nhưng số lượng câu hỏi mà hệ thống đưa ra câu trả lời lại rất ít Lấy một ví dụ: ta có 100 câu hỏi, hệ thống chỉ trả lời 20 câu và trong 20 câu đó có 18 câu đúng; dựa vào công thức tính độ chính xác ta có P = 18/20 = 90% và R = 20/100 = 20%
Ngược lại, hệ thống thứ hai có độ đầy đủ càng cao nhưng độ chính xác thấp đồng nghĩa với việc hệ thống đưa ra rất nhiều câu trả lời, tuy nhiên số câu trả lời đúng trong những câu trả lời được đưa ra đều rất ít Ví dụ: ta có 100 câu hỏi, hệ thống trả lời 90 câu và trong 90 câu đó có 27 câu đúng; vì vậy P = 27/90 = 30% và khi
17 Như hai ví dụ ở trên, một hệ thống A có P = 90% và R = 20% và hệ thống
B có P = 20% và R = 80%, để có một sự so sánh tổng quan hơn ta tiếp tục áp dụng độ cân bằng trên hai hệ thống Hệ thống A có F = 33% và hệ thống B có F = 45% nên ta có thể nói hệ thống B có hiệu suất tốt hơn A Tuy nhiên không phải lúc nào
F cũng được sử dụng để so sánh giữa các hệ thống, đôi khi vì mục đích đặc biệt thì P hoặc R có thể được dùng thay vì F
Các hướng tiếp cận
Wikipedia là một trong những nguồn tri thức lớn nhất và cũng là bộ từ điển bách khoa toàn thư đầy đủ nhất trên internet hiện nay Nó luôn được đóng góp và phát triển ngày một lớn với với sự đóng góp đông đảo từ các tác giả và cộng đồng người sử dụng trên internet Tuy nhiên cũng chính vì sự đóng góp từ nhiều nguồn như vậy, bên cạnh nguồn thông tin dồi dào, dữ liệu Wikipedia tồn tại một số hạn chế như thiếu nhất quán, thông tin còn rời rạc chưa cô đọng, việc tìm kiếm thông tin vẫn còn chưa thật sự linh hoạt và đáp ứng được nhu cầu sử dụng phức tạp hơn
Ví dụ như chưa thể trả lời trực tiếp những câu hỏi sau:
“Give me all cities in New Jersey with more than 10,000 inhabitants”
“Give me all Italian musicians from the 18th century”
Qua những hạn chế trên, đồng thời để tận dụng hết hiệu quả tiềm tàng của nguồn dữ liệu khổng lồ trên Wikipedia, rất nhiều các dự án đề tài nghiên cứu liên quan đến vấn đề này Trong phạm vi luận án, một số dự án điển hình được đề cập tới là: DBpedia [4], YAGO [8]
Các đề án trên hay các đề án liên quan đến việc khai thác dữ liệu từ Wikipedia khác đều có một điểm chung là không thể bỏ qua lượng thông tin mà infobox trên Wikipedia có được Đây có thể nói là nguồn thông tin quý giá và quan trọng nhất trên Wikipedia, vì tính cô đọng và có cấu trúc của nó Với DBpedia và YAGO thì một phần của hệ thống khai phá thông tin có chức năng lấy trực tiếp từ nguồn thông tin trên infobox này
19 DBpedia [4] là một đề án khai thác các thông tin có cấu trúc từ Wikipedia với hơn 97 ngôn ngữ khác nhau và kết hợp thông tin này tạo thành nguồn tri thức đa ngôn ngữ mới với rất nhiều các mảng kiến thức khác Bên cạnh đó nó cũng chứa nguồn thông tin có cấu trúc từ việc trích xuất thông tin từ infobox trên Wikipedia với hơn 15 ngôn ngữ khác nhau Nguồn thông tin này có khả năng hỗ trợ các dạng ngôn ngữ truy vấn (SPARSQL) và toàn bộ dữ liệu (datasets) được đưa ra cộng đồng để có thể sử dụng cho các mục đích nghiên cứu khác nhau, đặc biệt là trong các dự án liên quan đến việc khai thác tri thức cũng như xử lý ngôn ngữ tự nhiên Hình 3-1 là mô hình khai phá tri thức từ DBpedia
Hình 3-1: Mô hình khai phá tri thức từ DBpedia
Ví dụ, ta có thể hỏi những câu có ý nghĩa tự nhiên như “Give me all cities in New Jersey with more than 10,000 inhabitants” hoặc “Give me all Italian musicians from the 18th century” Những câu hỏi này sẽ được chuyển về dạng những câu truy vấn tương đương với ý nghĩa ban đầu của chúng, ngôn ngữ truy vấn này được gọi là SPARSQL Cuối cùng, DBpedia sẽ tự động xử lý và đưa ra được những câu trả lời tương ứng.
20 đến cho việc tương tác với nguồn thông tin tri thức cao hơn một bậc so với Wikpedia Trong nội dung nghiên cứu của luận văn, DBpedia là một trong những nguồn thông tin liên quan được khai thác trong quá trình làm giàu thông tin cho infobox của Wikipedia, cụ thể là giúp cho việc bổ sung thuộc tính mới cho infobox, chính là trọng tâm chính của luận án này
Tương tự như DBpedia, YAGO [8] cũng là một đề án có cùng mục tiêu là khai thác nguồn thông tin từ Wikipedia để tổ chức lại một hệ thống tri thức riêng của nó, YAGO cũng có những hệ thống trích xuất thông tin từ Wikipedia, hỗ trợ các ngôn ngữ truy vấn,… Nhưng nó có một số đặc điểm riêng khác với DBpedia:
YAGO cũng khai thác thông tin từ Wikipedia, nhưng chú trọng hơn vào độ chính xác và tính nhất quán trong cấu trúc của nguồn dữ liệu mà nó xây dựng Nhờ đó,
YAGO sử dụng WordNet như một hệ thống phân cấp, trong đó mỗi điểm (synset) trong WordNet tương ứng với một lớp (class) trong YAGO Các chuyên mục (category) trên Wikipedia là lớp con của các lớp này, tạo thành một hệ thống phân cấp toàn diện phục vụ cho quá trình kết nối dữ liệu trên YAGO.
Do những yếu tố khác biệt giữa hai hệ cơ sở tri thức trên nên ontology của YAGO được tổ chức với số lượng các lớp hơn rất nhiều (~3500 lớp so với ~520 lớp của DBpedia), tuy nhiên số lượng các thuộc tính (relation) chỉ khoảng trên dưới 100 (so với 1100 trên DBpedia) Mặt khác, lượng thông tin trên DBpedia đầy đủ hơn vì nó là một bản sao của Wikipedia dưới dạng dữ liệu đa chiều, chứ không chọn lọc thông tin như YAGO, vì YAGO muốn duy trì độ chính xác và nhất quán của thông tin Trong nội dung nghiên cứu của đề tài, YAGO cũng được xem như là nguồn thông tin liên quan được sử dụng trong việc làm giàu thông tin cho infobox Đến những năm về sau, YAGO phát triển ngày một mạnh và nâng phiên bản lên thành YAGO2 Đây chính là một phiên bản mở rộng cho hệ tri thức của YAGO, trong đó các thực thể và sự kiện được gắn thêm yếu tố không gian và thời gian Hiện tại YAGO2 chứa khoảng 447 triệu sự kiện và khoảng 9.8 triệu thực thể
Các nghiên cứu khác về trích xuất mối quan hệ và thông tin từ Web và Wikipedia bao gồm KnowItAll và TextRunner Mục đích chính của những nghiên cứu này là trích xuất kiến thức dưới dạng các mối quan hệ từ các tài liệu web nói chung Tuy nhiên, khác với KnowItAll và TextRunner, nghiên cứu này tập trung vào các đặc điểm riêng của Wikipedia, khai thác kiến thức từ một nguồn thông tin có cấu trúc và có sự đóng góp của cộng đồng.
21 nghiên cứu của luận án là tập trung vào việc tạo ra miền cụ thể cho tất cả các thuộc tính trong tất cả các infobox
Tuy nhiên một vấn đề cũng được đặt ra là liệu thông tin trên infobox có còn thiếu những giá trị nào mà trong bài viết chứa infobox đó có hay không Một số các đề tài nghiên cứu khác cố gắng lấy những giá trị còn thiếu trong bài viết để bổ sung cho các thuộc tính trong infobox đó Gần hơn với nội dung của luận án đó là đi sâu vào việc trích xuất thông tin từ bài viết và làm giàu cho infobox là hai hệ thống iPopular [11] và WAVE [14] Các phương pháp trên cũng là mục tiêu phân tích chính của luận án Đầu tiên là iPopular, đây là một hệ thống tự động làm giàu thêm cho các infobox trên Wikipedia, cụ thể là trích xuất thông tin từ trong nội dung bài viết để bổ sung các cặp thuộc tính-giá trị cho infobox của bài viết đó
Trong đó CRF (Conditional Randon Field) được sử dụng để huấn luyện các bộ trích xuất (extractor) để tìm ra các giá trị thuộc tính từ bài viết cho infobox iPopular được xây dựng theo quy trình gồm 4 bước: phân tích cấu trúc giá trị thuộc tính, tạo dữ liệu huấn luyện, huấn luyện và tìm các cặp thuộc tính-giá trị
Tương tự như iPopular, WAVE cũng là một phương pháp với cùng mục tiêu là làm giàu thêm cho các infobox bằng cách tìm các giá trị thuộc tính ngay từ trong nội dung bài viết chứa infobox đó Tuy nhiên khác với iPopular, WAVE sử dụng các kỹ thuật tiền xử lý nội dung bài viết trước khi trích xuất giá trị thuộc tính như: làm giàu thông tin cho văn bản bằng các định dạng chứa thể HTML, phân loại các câu trong văn bản bằng phương pháp maximum entropy [16], chọn lọc câu tương ứng với thuộc tính bằng phương pháp gom cụm k-means clustering algorithm [17], và cuối cùng là huấn luyện các bộ trích xuất CRF trên câu được chọn Chi tiết các phương pháp iPopular và WAVE sẽ được trình bày tiếp theo trong luận án ở các phần tiếp theo sau đây (phần 3.2 và 3.3).
Phương pháp iPopular
Quá trình trích xuất thông tin giá trị thuộc tính từ trong bài viết của phương pháp iPopular được thể hiện ở Hình 3-2 Với mỗi infobox template, các bước sau được lần lượt thực thi, trong đó nội dung văn bản của bài viết và các cặp giá trị-
22 thuộc tính có sẵn trên infobox trong bài viết đó sử dụng để huấn luyện các bộ trích xuất giá trị thuộc tính:
(1) Phân tích cấu trúc của giá trị thuộc tính: đối với mỗi thuộc tính trong infobox template, tất cả các giá trị của nó có trong tập huấn luyện được phân tích để xác định được cấu trúc chung diễn đạt những đặc trưng của thuộc tính đó
(2) Tạo tập huấn luyện: trong bước này, các bài viết chứa giá trị của một thuộc tính được dùng như là tập huấn luyện Các giá trị của thuộc tính đó sẽ được gắn nhãn ở mỗi lần xuất hiện trong bài viết
(3) Huấn luyện bộ trích xuất: tập huấn luyện với các nhãn đánh dấu giá trị thuộc tính trong nội dung bài viết được dùng để huấn luyện bộ trích xuất giá trị của thuộc tính Trong bước này iPopular sử dụng Conditional Random Fields (CRFs) để huấn luyện Các bộ trích xuất được đánh giá tự động để chọn ra những bộ hiệu quả
(4) Trích xuất giá trị thuộc tính: bộ trích xuất tương ứng với mỗi thuộc tính được áp dụng trên nội dung bài viết để tìm các thành phần của giá trị thuộc tính Các thành phần này sau đó được kết hợp lại để được giá trị hoàn chỉnh bổ sung cho infoxbox của bài viết đó Để hiểu rõ hơn cách thức iPopular hoạt động, chúng tôi đi vào chi tiết của từng bước trên tiếp theo sau đây
Phân tích cấu trúc giá trị thuộc tính
Việc phân tích cấu trúc giá trị thuộc tính là một bước quan trọng trong phương pháp iPopular Bằng việc phân tích này, ta có thể tách giá trị của một thuộc tính cụ thể thành các thành phần khác nhau Do đó việc trích xuất giá trị dựa trên cấu trúc này giúp ta có thể tìm được các thành phần của giá trị thuộc tính nằm ở các vị trí khác nhau trên bài viết sau đó kết hợp lại thành một giá trị hoàn chỉnh
Lấy một ví dụ, một giá trị của thuộc tính number_of_employees (thuộc infobox template infobox_company) thể hiện là 12,500 (2003), có nghĩa là trong năm 2003 một công ty có số nhân viên là 12,500 người Rất nhiều giá trị khác của thuộc tính
23 đó cũng có giá trị mà cấu trúc của nó có thể được kết hợp bằng nhiều thành phần có nghĩa khác nhau như:
- keypeople: Samuel J Palmisano (Chairman, President and CEO)
- residence: The White House (official)
Ngoài ra, giá trị thuộc tính còn có thể thuộc dạng đa giá trị, chẳng hạn như
Bill Gates, Pau Allen là giá trị của thuộc tính founder Xem thêm phần 2.3 để tìm hiểu chi tiết phương pháp phân tích cấu trúc giá trị thuộc tính mà phương pháp iPopular sử dụng ở bước này
Hình 3-2: Quy trình hoạt động của iPopular Trích từ [11]
Tạo tập huấn luyện Để thuận tiện cho việc tạo tập huấn luyện Qua quá trình thống kê về tần suất xuất hiện của giá trị thuộc tính trong các đoạn văn của bài viết iPopular chọn
24 5 đoạn văn đầu của mỗi bài viết là dữ liệu tối ưu để làm tập huấn luyện cho hệ thống Vì đa số các giá trị thuộc tính của một bài viết trên Wikipedia đều nằm tập trung phần lớn ở các đoạn văn này, iPopular loại bỏ bớt các đoạn văn còn lại để tránh tình trạng bị nhiễu thông tin trong quá trình huấn luyện các bộ trích xuất
Bên cạnh đó, iPopular không gắn nhãn toàn bộ giá trị thuộc tính mà là gắn nhãn từng thành phần cấu tạo nên giá trị thuộc tính đó, thông qua cấu trúc giá trị thuộc tính được xác định ở bước trước Việc gắn nhãn từng thành phần riêng lẻ này có tác dụng làm tăng xác suất tìm kiếm được giá trị thuộc tính được đề cập đến trong bài viết trong trường hợp các thành phần được đề cập đến nằm ở các vị trí khác nhau trong văn bản
Hình 3-3: Hàm so sánh độ tương đồng của giá trị thuộc tính trong infobox và trong nội dung bài viết Trích từ [11] Để tạo tập huấn luyện cho giải thuật CRF, các giá trị của thuộc tính trong bài viết phải được gắn nhãn cho sự xuất hiện của chúng trong các đoạn văn trên bài viết Thông thường thì giá trị trong infobox và giá trị được đề cập đến trong bài viết thì không hoàn toàn giống nhau Lấy một ví dụ, giá trị của thuộc tính company_name là Fantastic Holdings Ldt; tuy nhiên trong bài viết được ghi là Fantastic Holdings Limited Để tránh thất thoát dữ liệu trong trường hợp này, iPopular được ra hàm tính toán độ tương đồng của các chuỗi thể hiện giá trị thuộc tính (Hình 3-3) Nếu chỉ một trong hai chuỗi so sánh là kiểu số, kết quả sẽ là không giống nhau Nếu cùng là số thì giá trị không lệch nhau quá 1/1000 giá trị của số còn lại Nếu cả 2 đều là chuỗi văn bản, độ đo Levenshtein [24] được iPopular sử dụng để tính toán độ khác nhau giữa chúng (không quá 1/4 độ dài của chuỗi thứ nhất)
Hình 3-4: Đặc trưng CRF áp dụng trên mỗi cụm trong văn bản.Danh sách các tính chất của các từ trong cửa sổ gồm 5 từ trước và sau từ đang được phân tích
Huấn luyện bộ trích xuất
Với tập huấn luyện đã được tạo, hệ thống iPopular chọn phương pháp
Random Conditional Fields (CRF) [12] làm công cụ huấn luyện các bộ trích xuất tương ứng với từng thuộc tính Các bộ trích xuất CRF học cách đánh nhãn thông qua các đặc trưng (features) của từng cụm từ trong văn bản Các đặc trưng này thể
26 hiện các tính chất của từng cụm từ đó trong văn bản chứa nó Danh sách đặc trưng được iPopular sử dụng được liệt kê trong Hình 3-4.
Trích xuất giá trị thuộc tính
Các bộ trích xuất sau khi được huấn luyện có thể áp dụng để trích xuất các giá trị thuộc tính từ trong bài viết Kết quả của bước này là các văn bản của từng bài viết được gắn nhãn để xác định vị trí của các thành phần của giá trị thuộc tính cần trích xuất Việc cuối cùng là cần kết hợp các thành phần của giá trị thuộc tính trong bài viết để kết hợp lại thành giá trị đầy đủ Việc này được thực hiện bằng cách đối chiếu với thứ tự và định dạng trong cấu trúc giá trị thuộc tính tương ứng
Phương pháp WAVE
Hình 3-5: Sơ đồ hoạt động của WAVE Trích từ [14]
Tương tự như iPopular, WAVE [14] cũng là một phương pháp trích xuất giá trị thuộc tính từ trong nội dung của bài viết trên Wikipedia Trong phần này, chúng tôi sẽ trình bày cơ chế hoạt được của phương pháp này Hình 3-5 là các bước trong phương pháp WAVE gồm: tiền xử lý thông tin từ Wikipedia, phân loại, chọn lọc, và huấn luyện bộ trích xuất Sơ đồ này minh họa các bước trong việc học và sử dụng bộ trích xuất để tìm các giá trị thuộc tính trong bài viết bổ sung cho infobox
Tiền xử lý thông tin từ Wikipedia
Mục tiêu của bước này là thu thập các dữ liệu cần thiết (bài viết, infobox template, các cặp thuộc tính-giá trị) từ Wikipedia Sau đó chuyển đổi và lấy những thông tin cần thiết làm tập huấn luyện cho các bước sau Nội dung bài viết từ Wikipedia sẽ được trải qua nhiều bước để tổng hợp tối ưu các định dạng cần thiết cho việc học và huấn luyện:
Hình 3-6: Các định dạng văn bản được chuyển hoá trong tiền xử lý văn bản của
Duyệt qua tất cả bài viết có sử dụng mẫu hộp thông tin Các bài viết có nội dung chứa hộp thông tin có tên trùng khớp với mẫu hộp thông tin đó sẽ được chọn.
- Tách và lưu trữ tất các các cặp giá trị-thuộc tính được mô tả trong infobox của bài viết tạo thành bộ dữ liệu infobox Bộ dữ liệu này là tập hợp tất cả những thuộc tính có thể tìm được trong infobox template tương ứng
- Chuyển nội dung bài viết từ định dạng mediatext sang định dạng HTML Định đạng mediatext chính là định dạng mà các tác giả trên Wikipedia sử dụng để viết bài
- Tiếp tục chuyển nội dung định dạng HTML sang định dạng văn bản được làm giàu (enriched plain text), là một dạng văn bản HTML nhưng lược bỏ tất cả thuộc tính trong các thẻ HTML, mà chỉ giữ lại tên thẻ Hình 3-6 là ví dụ mà các định đạng được chuyển hoá trong quá trình tiền xử lý
Các định dạng văn bản phong phú sẽ được tách thành các câu sử dụng OpenNPL, một công cụ hỗ trợ trong phân tích ngôn ngữ tự nhiên.
Bộ phân loại câu trong hệ thống sẽ đảm nhận việc phân loại các câu trong văn bản theo các thuộc tính trong infobox của bài viết tương ứng Việc phân loại này sẽ giúp chọn ra các câu tương ứng với các thuộc tính cụ thể, được chia ra làm hai giai đoạn chính:
- Tập huấn luyện: văn bản được làm giàu ở bước trên sẽ được sử dụng như là tập huấn luyện cho bộ phân loại câu Cụ thể là trong mỗi bài viết, sẽ chọn ra các câu tương ứng với mỗi thuộc tính trong infobox Việc chọn câu này dựa trên phương pháp so trùng căn bản Nghĩa là trong nội dung câu nào có chứa chuỗi văn bản trùng với giá trị thuộc tính sẽ được chọn
- Huấn luyện: Tại bước này, phương pháp maximum entropy [16] sẽ được dùng để huấn luyện các bộ phân loại câu với tập huấn luyện được tạo ở bước trước
Khi một câu văn bản mới được đưa vào bộ phân loại Bộ phân loại sẽ sắp xếp và đưa các câu này ứng với thuộc tính thích hợp trong infobox tương ứng
Ở bước phân loại, hệ thống nhóm các câu có liên quan đến thuộc tính bằng thuật toán gom cụm k-means Để tính độ giống nhau của các câu, hệ thống sử dụng độ đo tương đồng trong mô hình không gian vector Sau khi nhóm các câu, hệ thống chọn ra câu phù hợp nhất để trích xuất giá trị thuộc tính.
Nguyên tắc chọn lọc cụm đông đúc nhất dựa trên giả định rằng cụm đó có khả năng chứa nhiều câu có giá trị thuộc tính cao Tiếp theo, chọn câu gần nhất với tâm cụm bằng cách sử dụng độ đo xấp xỉ Các câu gần tâm cụm nhất được lựa chọn để trích xuất giá trị thuộc tính.
Bước này, phương pháp CRF (Conditional Random Field) sẽ được sử dụng để trích xuất các giá trị thuộc tính trong bài viết cho infobox Từng bộ trích xuất CRF sẽ được huấn luyện cho mỗi thuộc tính tương ứng Sau đó các bộ trích xuất này sẽ được sử dụng để tìm giá trị cho thuộc tính đó trong câu được chọn Tiếp theo sau đây là diễn giải chi tiết cách thức hệ thống thực hiện Đầu tiên các câu tương ứng với các giá trị của mỗi thuộc tính được sử dụng cho giai đoạn này (công việc này đã được thực hiện tại bước phân loại trước đó)
Tiếp theo cửa sổ trượt được sử dụng trên từng câu để lọc ra một số lượng các cụm trước giá trị thuộc tính (được gắn nhãn là pre), các cụm chứa giá trị thuộc tính, và các cụm sau giá trị thuộc tính (được gắn nhãn là post) Trong đó từng cụm cấu thành nên giá trị thuộc tính cũng được gắn nhãn theo quy ước sau:
- Giá trị thuộc tính chỉ được cấu tạo từ một cụm Cụm đó được gắn nhãn là init
- Giá trị thuộc tính được cấu tạo bằng hai cụm Cụm thứ nhất được gắn nhãn là init, cụm còn lại được gắn nhãn là end
Giá trị thuộc tính được cấu trúc từ nhiều cụm, bao gồm cụm đầu tiên có nhãn là "init", cụm cuối cùng có nhãn là "end" Các cụm ở giữa có nhãn là "middle".
Tập thực nghiệm
Mục tiêu chính của việc xây đựng tập thực nghiệm là để đánh giá và so sánh hiệu năng của các phương pháp iPopular, WAVE và phương pháp kết hợp trong việc trích xuất các giá trị thuộc tính từ trong bài viết Vì tính chất khác nhau của các phương pháp và cũng là để sử dụng phương pháp đối chiếu so sánh chéo kết quả, chúng tôi sử dụng cả hai tập thực nghiệm của iPopular và WAVE tương ứng với tập thực nghiệm mà các tác giả trước đây sử dụng trong các bài báo của họ (theo [11] và [14]) Để tiện trong việc trình bày trong luận án, từ phần này trở đi, chúng tôi gọi hai tập thực nghiệm trên là tập thực nghiệm WAVE và tập thực nghiệm iPopular
Với tập thực nghiệm iPopular, bốn infobox template đã được chọn gồm: actor, book, company, planet Theo như kết quả nghiên cứu trước đây của iPopular [11], đây là bốn trong 50 infobox template phổ biến nhất thuộc các lãnh vực khác nhau trên Wikipedia Trong các infobox_template trên, iPopular lần lượt chọn ra tự động một số lượng bài viết tương ứng cho mỗi infobox template để làm tập thực nghiệm (trong hình Hình 4-1) Tương tự như iPopular, tập thực nghiệm WAVE bao gồm bốn infobox template: U.S_county, airline, actor, university Và với mỗi infobox template, chúng tôi cũng chọn ngẫu nhiên một lượng bài viết trong số các infobox template này (trong hình Hình 4-2) Sau khi chọn được các tập thực nghiệm, tương ứng với từng infobox template, tập huấn luyện cũng như tập đánh giá được chọn trong số các bài viết này
Các nghiên cứu trước sử dụng dữ liệu trên Wikipedia năm 2010 (iPopular: tháng 05/2010; WAVE: 03/12/2010) Do dữ liệu năm 2010 hiện không còn trên mạng, luận văn này sử dụng dữ liệu gần nhất tìm được vào tháng 01/2011 để đảm bảo tính so sánh chính xác với các nghiên cứu trước.
Hình 4-1: Tập thực nghiệm phương pháp iPopular sử dụng
Hình 4-2: Tập thực nghiệm phương pháp WAVE sử dụng.
Phương pháp đánh giá
Để đánh giá hiệu quả của phương pháp nền iPopular và WAVE cũng như phương pháp kết hợp, quá trình đánh giá được chia làm hai giai đoạn: đánh giá chéo kết quả của iPopular và WAVE trên các tập dữ liệu thử nghiệm của nhau, sau đó đánh giá phương pháp kết hợp trên cả hai tập dữ liệu thử nghiệm để so sánh các kết quả đạt được.
Cả hai phương pháp iPopular và WAVE đều đánh giá tự động dựa trên những dữ liệu có sẵn trên tập thực nghiệm Bằng cách chia tập thực nghiệm ra làm các phần nhỏ, một phần được giữ lại làm tập đánh giá và các phần còn lại làm tập huấn luyện Quá trình trên được lặp lại cho đến khi các phần được luân phiên làm tập đánh giá kết quả huấn luyện của các phần còn lại Phương pháp này là phương pháp đánh giá cross-validation [26] Cụ thể iPopular sử dụng kết quả của 3-fold cross-validation, và WAVE sử dụng kết quả của 10-fold cross-validation trên tập thực nghiệm làm kết quả cuối cùng k-fold cross-validation
Trong k-fold cross-validation, tập thực nghiệm được chia ngẫu nhiên thành k các phần (folds) với kích thước bằng nhau Trong số các phần đó, mỗi phần được giữ lại làm tập đánh giá để kiểm tra kết quả, và k – 1 các phần còn lại được sử dụng như là tập huấn luyện Quá trình cross-validation sau đó được lặp lại k lần, khi đó với mỗi phần trong tổng k phần được giữ lại đúng một lần để làm tập đánh giá Số lượng k kết quả sau các lần lặp được tính trung bình để là kết quả cuối cùng Phương pháp đánh giá này được dùng phổ biến trong các trường hợp cần
34 đánh giá tự động dựa trên những mẫu có sẵn Hình minh hoạ cho phương pháp k- fold cross-validation.
Hình 4-3: Minh họa quá trình đánh giá dựa trên phương pháp k-fold cross- validation Nguồn từ internet
Phương pháp đánh giá trên tập thực nghiệm WAVE và iPopular
Trong tập các tập thực nghiệm WAVE và iPopular ta sử dụng phương pháp
10-fold cross-validation và 3-fold cross-validation để đánh giá kết quả của hai phương pháp iPopular và WAVE Trong quá trình đánh giá cũng xét đến tần suất xuất hiện các giá trị của mỗi thuộc tính trong infobox Cụ thể là những thuộc tính có tần suất xuất hiện dưới 15% bài viết trong tổng số các bài viết của infobox template bất kỳ sẽ bị loại ra trong quá trình tính toán trên tập thực nghiệm WAVE
Tuy nhiên trong tập thực nghiệm iPopular ta lấy tất cả các thuộc tính, kể cả những thuộc tính có tần suất xuất hiện thấp, để có thể đưa ra được nhiều đánh giá khách quan hơn trong quá trình thực nghiệm
Trong mỗi lần lặp của tiến trình đánh giá, tập đánh giá gồm các cặp thuộc tính-giá trị, trong đó thuộc tính phải thuộc danh sách được xem xét trên infobox, còn giá trị phải có mặt trong văn bản bài viết Các cặp thuộc tính-giá trị có trong infobox nhưng giá trị không thể tìm thấy trong văn bản sẽ bị loại khỏi tập đánh giá.
Với phương pháp đánh giá trên hai tập thực nghiệm, độ chính xác p là tỉ lệ giữa các cặp thuộc tính-giá trị được trích xuất chính xác trong tổng số các cặp thuộc tính giá trị được trích xuất Độ đầy đủ r là tỉ lệ giữa các cặp thuộc tính-giá trị được trích xuất chính xác trên tổng số các cặp thuộc tính giá trị trong tập đánh giá Và F là độ dung hoà giữ độ chính xác và độ đầy đủ và bằng 2pr/(p+r) Đối với các phương pháp có sử dụng phương pháp trích xuất dựa trên cấu trúc của thuộc tính, các cặp thuộc tính-giá trị trích xuất chính xác chỉ bao gồm các cặp mà có giá trị được kết hợp đầy đủ từ các thành phần được tìm thấy trong bài viết Điều này có nghĩa là các giá trị không nguyên vẹn hoặc không chính xác sau quá trình kết hợp các thành phần sẽ không được tính.
So sánh iPopular và WAVE
iPopular và WAVE là hai phương pháp tiêu biểu cho việc trích xuất giá trị thuộc tính từ trong bài viết trên Wikipedia Trước đây vào cùng thời điểm năm 2010, các phương pháp trên trước đây được đánh giá từ những kết quả thí nghiệm trên những tập thực nghiệm khác nhau Vì vậy, cho đến thời điểm hiện nay, chưa có sự so sánh trực tiếp giữa hai phương pháp này; do kết quả thí nghiệm trước đây của hai phương pháp trên chưa thể cho ta cái nhìn khách quan về hiệu năng, ưu và nhược điểm giữa hai chúng
Vì vậy mục tiêu chính của phần này cũng là một trong những nội dung chính của luận án là đánh giá kết quả của phương pháp iPopular và WAVE trên các tập thực nghiệm Để đảm bảo tính chính xác và độ tin cậy cao, các phương pháp được hiện thực và được kiểm tra chéo trên hai tập thực nghiệm chính là tập thực nghiệm iPopular và tập thực nghiệm WAVE trong các bài báo liên quan (xem thêm tập thực nghiệm mục 4.1) Từ đó kết quả thực nghiệm, chúng tôi so sánh hiệu năng, ưu và nhược điểm giữa hai phương pháp trên Tiếp theo dưới đây là lần lượt trình bày các kết quả trong quá trình kiểm nghiệm
Bảng 4-1 hiển thị kết quả thực nghiệm được của phương pháp iPopular và WAVE trên tập thực nghiệm WAVE, với phương pháp đánh giá là 10-fold cross-
36 validation Phương pháp WAVE cho ta độ chính xác cao hơn từ 4% đến 7% so với kết quả từ phương pháp iPopular, trừ trường hợp độ chính xác trong infobox template Actor (thấp hơn 2%) Với độ đầy đủ, phương pháp WAVE cũng cho kết quả cao hơn từ 4% đến 12% so với phương pháp iPopular Từ đó phương pháp WAVE cũng cho kết quả F cao hơn từ 2% đến 10% so với phương pháp iPopular
Bảng 4-1: Kết quả thực nghiệm của iPopular và Wave trên tập thực nghiệm
Bảng 4-2 hiển thị kết quả thực nghiệm được của phương pháp iPopular và WAVE trên tập thực nghiệm iPopular, với phương pháp đánh giá được sử dụng trong tập thực nghiệm này là 3-fold cross-validation WAVE cho ta độ chính xác cao hơn từ 2% đến 6% so với kết quả từ iPopular Với độ đầy đủ, WAVE cũng cho kết quả cao hơn từ 3% đến 4% so với iPopular, tuy nhiên trong độ đầy đủ của
37 infobox template planet, iPopular lại cho kết quả cao hơn 1% Về độ hài hoà,
WAVE cũng cho kết quả F cao hơn so với iPopular từ 1% đến 4% so với iPopular
Bảng 4-2: Kết quả thực nghiệm của iPopular và WAVE trên tập thực nghiệm iPopular
Bảng 4-1 và Bảng 4-2, ta nhận thấy là WAVE thường cho kết quả cao hơn so với iPopular trong quá trình rút trích cặp thuộc tính-giá trị Một trong những yếu tố ảnh hưởng đến hiệu năng của WAVE là do văn bản được tiền xử lý và chuyển sang dạng văn bản được làm giàu thông tin bằng cách giữ lại các thẻ
Các phương pháp trích xuất giá trị thuộc tính thường sử dụng các kỹ thuật học máy như học tăng cường (RL), mạng nơ-ron sâu (DNN) hoặc trường ngẫu nhiên có điều kiện (CRF) RL và DNN có thể trích xuất hiệu quả các giá trị thuộc tính có tính đặc trưng cao Trong khi đó, CRF có thể trích xuất các giá trị trùng lặp, không đặc trưng Để cải thiện độ chính xác, các phương pháp như iPopular và WAVE kết hợp CRF với các kỹ thuật khác iPopular tận dụng năm đoạn văn đầu của văn bản, còn WAVE thực hiện phân loại và chọn lọc câu phù hợp nhất trước khi áp dụng CRF.
38 kết quả ưu thế khi so với iPopular trong quá trình thực nghiệm (xem chi tiết hai phương pháp iPopular và WAVE ở phần 3.2 và 3.3)
Thông qua các kết quả thực nghiệm vừa rồi, có thể nhận định phương pháp
WAVE tỏ ra có kết quả thường cao hơn so với phương pháp iPopular Tuy nhiên ưu điểm của phương pháp iPopular là có khả năng tìm được các giá trị mà các thành phần của giá trị đó nằm ở các vị trí khác nhau Với nhận định trên, chúng tôi phân tích và đề xuất phương pháp kết hợp nhằm tận dụng các ưu điểm từ hai phương pháp tiêu biểu trên Nội dung tiếp theo của luận án là trình bày phương pháp kết hợp này và đưa ra các kết quả so sánh với các phương pháp trước đó.
Phương pháp kết hợp
Theo kết quả kiểm nghiệm thực tế từ hai phương pháp iPopular và WAVE
(kết quả đánh giá được trình bày chi tiết ở phần 4.3) Rút ra những đánh giá tổng quan như sau:
- Phương pháp WAVE cho thấy mức độ chính xác và hiệu quả cao hơn so với iPopular; kết luận này dựa trên quá trình thực nghiệm, so sánh kết quả giữa các phương pháp (xem so sánh iPopular và WAVE, phần 4.3)
Quá trình phân tích các giá trị thuộc tính trong infobox của iPopular dựa trên cấu trúc đa thành phần của mỗi thuộc tính Thực nghiệm chứng minh rằng iPopular nâng cao mức độ phủ sóng (recall) khi tìm kiếm giá trị mới cho các thuộc tính.
- Phương pháp WAVE giới hạn trong việc tìm các giá trị thuộc tính đa thành phần mà giá trị đó gồm các thành phần được nhắc đến ở các vị trí khác nhau trong bài viết Xét một ví dụ cụ thể như sau, một giá trị của thuộc tính number_of_employees thuộc infobox_company là 12,500 (2013) Tuy nhiên, các câu tương ứng với giá trị này trong bài viết lại là “In 2008, the company had 54,400 employees” WAVE sẽ không tìm được giá trị thuộc tính trong trường hợp này Tương tự, phương pháp trên cũng gặp vấn đề
39 trên với những giá trị phức (tức là những thuộc tính có giá trị theo dạng liệt kê như: children, locations, …)
- Với những nhận định trên, đề tài đề xuất một phương án mới là áp dụng phương pháp tách thành phần giá trị (tham khảo cách phân tích cấu trúc giá trị cho thuộc tính của iPopular, phần 2.3) cho phương pháp WAVE, với mục tiêu là có thể tăng tính bao phủ (recall) mà vẫn bảo đảm cho chính xác (precision) cho WAVE Việc này nâng cao khả năng cho việc tìm các giá trị thuộc tính từ trong bài viết Phương pháp đề xuất được thực hiện theo quy trình như Hình 4-4 Toàn bộ quy trình của phương pháp kết hợp được xây dựng lại dựa theo những kỹ thuật của các phương pháp nền nhưng được điều chỉnh để có thể tối ưu khả năng trích xuất là cao nhất Quy trình này được mô tả từng bước qua những phần tiếp theo đây
Với những nhận định trên, đề tài đề xuất một phương án mới là áp dụng phương pháp tách thành phần giá trị (tham khảo cách phân tích cấu trúc giá trị cho thuộc tính của iPopular, phần 2.3) cho phương pháp WAVE, với mục tiêu là có thể tăng tính bao phủ (recall) mà vẫn bảo đảm cho chính xác (precision) cho WAVE Việc này nâng cao khả năng cho việc tìm các giá trị thuộc tính từ trong bài viết Phương pháp đề xuất được thực hiện theo quy trình như Hình 4-4 Toàn bộ quy trình của phương pháp kết hợp được xây dựng lại dựa theo những kỹ thuật của các phương pháp nền nhưng được điều chỉnh để có thể tối ưu khả năng trích xuất là cao nhất Quy trình này được mô tả từng bước qua những phần tiếp theo đây Đầu tiên là việc phân tích cấu trúc giá trị thuộc tính để phân tích các thành phần thuộc tính Việc phân tích này sử dụng kỹ thuật tương tự với iPopular đã làm (phân tích cấu trúc giá trị thuộc tính, phần 2.3) Bên cạnh đó, việc xử lý văn bản bài viết từ Wikipedia trong bước xử lý thông tin đầu vào thực hiện tương tự bước tiền xử lý thông tin đầu vào của pương pháp WAVE (phần 3.3) Và từ bước này trở đi, hệ thống sẽ tiếp tục thực hiện các bước còn lại của phương pháp WAVE, tuy nhiên sẽ không giống nhau hoàn toàn vì sẽ thực hiện trên các thành phần của giá trị thuộc tính mà việc phân tích cấu trúc giá trị thuộc tính thực hiện được
40 Do đó bước tiếp là phân loại và tìm câu tương ứng với các thành phần của thuộc tính chứ không là toàn bộ giá trị thuộc tính nữa Nghĩa là sẽ có thể chọn được nhiều hơn một câu tương ứng với các thành phần của thuộc tính Việc chọn lọc câu tương ứng với thành phần của thuộc tính rơi vào các trường hợp và cách chọn cũng khác nhau như sau:
- Thuộc tính có cấu trúc gồm các thành phần cố định cấu tạo nên: tương ứng với số lượng các thành phần của thuộc tính, bước phân loại và chọn lọc này sẽ chọn ra số lượng câu tương ứng Lấy ví dụ một thuộc tính dạng này là number_of_employees với cấu trúc phân tích được là (“(“Number”)”) (12,500 (2003)) Khi đó ta sẽ tìm được hai câu tương ứng để đưa vào bộ trích xuất
Hình 4-4: Sơ đồ các bước trong phương pháp đề xuất
41 - Thuộc tính là dạng liệt kê: các thành phần thuộc tính là dạng liệt kê, có thể nhiều hơn một thành phần nhưng không cụ thể số thành phần Ở dạng liệt kê này, trong bước chọn lọc câu thích hợp nhất, ta chọn ra những câu gần với centroid của cụm được chọn, nhưng không cách nhau quá 1/1000 đơn vị khoảng cách Con số này có được đựa vào quá trình thực nghiệm và chọn ra độ phù hợp nhất Lấy một ví dụ thuộc tính dạng liệt kê, ta có giá trị Bill
Gates, Paul Allen là giá trị của thuộc tính founder
Việc huấn luyện các bộ trích xuất cũng tương tự như phương pháp WAVE đã làm nhưng thực hiện trên các thành phần thuộc tính Cuối cùng trong bước tìm và xử lý kết quả, các bộ trích xuất này sẽ được áp dụng để trích xuất tất cả những thành phần giá trị thuộc tính từ trong bài viết Các thành phần giá trị thuộc tính được kết hợp lại thành giá trị đầy đủ Việc này được thực hiện bằng cách đối chiếu với thứ tự và định dạng trong cấu trúc giá trị thuộc tính tương ứng Ngoài ra, các giá trị không chứa các thành phần quan trọng sẽ bị loại bỏ để bảo đảm tính chính xác của kết quả thu được Xem chi tiết việc kết hợp thành phần giá trị thuộc tính ở bước thứ 4, trong phương pháp iPopular, phần 3.2
Tiếp theo là việc kiểm tra hiệu năng của phương pháp kết hợp so với các phương pháp trước đó Để đảm báo tính khách quan trong việc đánh giá, chúng tôi trực tiếp so sánh phương pháp kết hợp với hai phương pháp WAVE và iPopular cũng trên các tập thực nghiệm WAVE và iPopular để cho ra kết quả khách quan nhất có thể (xem thêm tập thực nghiệm ở mục 4.1) Việc so sánh trên nhằm kiểm nghiệm thực tế việc tận dụng khả năng phân tích cấu trúc giá trị thuộc tính của iPopular cũng như hiệu quả với việc trích xuất giá trị thuộc tính trong văn bản của WAVE trong phương pháp kết hợp
Bảng 4-3 là kết quả của phương pháp kết hợp so với kết quả từ hai phương pháp WAVE và iPopular trên tập thực nghiệm WAVE Có thể nhận thấy là kết quả của phương pháp kết hợp thường cao hơn so với iPopular và WAVE Phương pháp kết hợp cho thấy ưu điểm về việc tận dụng độ hiệu quả của WAVE trong
Sử dụng phương pháp phân tích cấu trúc giá trị thuộc tính từ iPopular, nghiên cứu đã trích xuất thành công 42 giá trị thuộc tính từ bài viết, bao gồm cả các giá trị có cấu trúc nhiều thành phần So sánh dựa trên độ đo hài hòa F, phương pháp kết hợp cho kết quả cao hơn từ 3% đến 6% so với kết quả tốt nhất thu được từ hai phương pháp còn lại.
IPOPULAR WAVE PP KẾT HỢP ACTOR (312)
Bảng 4-3: Kết quả phương pháp kết hợp so với kết quả từ hai phương pháp iPopular và WAVE trên tập thực nghiệm WAVE
Với Bảng 4-4 là là kết quả của phương pháp kết hợp so với kết quả từ hai phương pháp WAVE và iPopular trên tập thực nghiệm iPopular Ta có thể nhận thấy phương pháp kết hợp lại cho kết quả cao hơn so với iPopular và cả WAVE trong đa số các infobox template Cụ thể để cho dễ so sánh, ta chỉ xét trên độ đo hài hoà F của các phương pháp, kết quả từ phương pháp kết hợp cao hơn kết quả cao nhất từ hai phương pháp còn lại là từ 2% đến 4%, tuy nhiên lại thấp hơn
43 WAVE 1% trong infobox template book Tương tự như kết quả trước, phương pháp kết hợp cũng cho thấy hiệu năng cao nhờ hiệu quả của phương pháp rút trích giá trị thuộc tính từ WAVE trên các thuộc tính đa thành phần
Thông qua các kết quả thực nghiệm vừa rồi, có thể nhận định phương pháp kết hợp tỏ ra có kết quả thường cao hơn so với hai phương pháp còn lại trong các tập thực nghiệm iPopular và WAVE Tiếp theo để làm rõ hơn hiệu quả của phương pháp kết hợp với khả năng phân tích cấu trúc giá trị thuộc tính, chúng tôi tiếp tục thực nghiệm bằng cách chạy lại các phương pháp trên tập thực nghiệm iPopular một lần nữa Tuy nhiên trong lần chạy này, chúng tôi chỉ xét những thuộc tính mà có cấu trúc giá trị thuộc tính từ hai thành phần trở lên (đa thành phần)
IPOPULAR WAVE PP KẾT HỢP ACTOR (12,168)
Bảng 4-4: Kết quả phương pháp kết hợp so với kết quả từ hai phương pháp iPopular và WAVE trên tập thực nghiệm iPopular
Các đóng góp
Bài luận án này so sánh hiệu quả của hai phương pháp trích xuất giá trị thuộc tính từ văn bản: iPopular và WAVE Thí nghiệm cho thấy WAVE có hiệu quả hơn trong việc trích xuất chính xác các giá trị thuộc tính, trong khi iPopular có khả năng phân tích cấu trúc thuộc tính, giúp tìm được những giá trị thuộc tính phức tạp hơn nằm ở nhiều vị trí khác nhau trong văn bản.
Ngoài việc đánh giá các phương pháp trước đó, luận án đưa ra phương pháp đề xuất kết hợp những ưu điểm trên của hai phương pháp trên để có thể tối ưu được hiệu quả trong việc trích xuất giá trị thuộc tính Kết quả thực nghiệm của phương pháp đề xuất cho kết quả xấp xỉ hoặc cao hơn trong một số các infobox template mà luận án thực nghiệm so với hai phương pháp iPopular và WAVE.
Hướng phát triển
Trong luận án này, chúng tôi chỉ so sánh và đề xuất các phương pháp xoay quanh việc bổ sung giá trị cho thuộc tính còn trống trong infobox Tuy nhiên, không phải tất cả các thuộc tính trong infobox template có thể hiện hết những thông tin có giá trị mà bài viết đề cập tới Lấy một dẫn chứng, trong bài viết về
Albert Einstein 2 trên Wikipedia, với infobox template là scientist thì không có
2 http://en.wikipedia.org/wiki/Albert_Einstein
47 thuộc tính nào là parents, tuy nhiên nguồn thông tin này ta có thể tìm thấy trong nội dung bài viết qua câu trích “His father was Hermann Einstein, a sales…”, cho ta cặp giá trị thuộc tính là (parents, Hermann Einstein)
Từ đó ta có thể nhận thấy rằng, bên cạnh những thuộc tính trên infobox template mà bài viết sử dụng, ta có thểm tìm thấy các thuộc tính khác mang giá trị thông tin nhất định Hướng phát triển tương lai là làm sao xác định được lượng thông tin mới này (các cặp thuộc tính-giá trị mới) Bên cạnh đó, ngoài nguồn dữ liệu từ Wikipedia, còn có thể tận dụng các nguồn dữ liệu khác như DBpedia [4] và YAGO [8] để tìm những cặp thuộc tính-giá trị mới cho infobox
[1] S Auer, C Becker, C Bizer, R Cyganiak, S Hellmann, G Kobilarov, J
Lehmann (2009), “DBpedia - A Crystallization Point for the Web of Data”,
[2] D S Weld, F Wu (2008), “Automatically refining the wikipedia infobox ontology”, Proceedings of the 17th International Conference on World Wide Web, 635-644
[3] R Hoffmann, D S Weld, F Wu (2008), “Information extraction from
Wikipedia: Moving down the long tail”, Proceedings of the 14th International Conference on Knowledge Discovery & Data Mining, Las
[4] S Auer, C Bizer, S Hellmann, R Isele, M Jakob, A Jentzsch, P van Kleef, D Kontokostas, J Lehmann, P N Mendes, M Morsey (2013),
“DBpedia - A Large-scale, Multilingual Knowledge Base Extracted from Wikipedia”, Semantic Web Journal, 6, 499-1697
[5] A Jentzsch (2009), “DBpedia – Extracting structured data from
Wikipedia”, Semantic Web In Bibliotheken, Cologne, Germany
[6] S Auer, C Bizer, R Cyganiak, Z G Ives, G Kobilarov, J Lehmann
(2007), “DBpedia: A Nucleus for a Web of Open Data”, The Semantic Web,
6th International Semantic Web Conference, 2nd Asian Semantic Web Conference, ISWC 2007 + ASWC 2007, Busan, Korea, pp 722–735
[7] K Berberich, J Hoart, F M Suchanek, G Weikum (2010), “YAGO2: A
Spatially and Temporally Enhanced Knowledge Base from Wikipedia”,
Max-Planck-Institut fur Informatik, Research report
[8] G Kasneci, F M Suchanek, G Weikum (2008), “YAGO: A Large
Ontology from Wikipedia and WordNet”, Semantic Web Journal, 6, 203-
49 [9] G Kasneci, F M Suchanek, G Weikum (2007), “YAGO: A Core of
Semantic Knowledge”, Proceedings of the 16th international conference on
World Wide Web, WWW 2007, Banff, Canada, pp 697–706
[10] C Bizer, M Jakob, P N Mendes (2012), “DBpedia for NLP: A
Multilingual Cross-domain Knowledge Base”, Proceedings of the International Conference on Language Resources and Evaluation (LREC),
[11] C Bửhm, D Lange, F Naumann (2010), “Extracting structured information from Wikipedia articles to populate infoboxes”, Proceedings of the 19th ACM Conference on Information and Knowledge Management (CIKM),
[12] J Lafferty, A McCallum, F Pereira (2001), “Conditional random fields:
Probabilistic models for segmenting and labeling sequence data”, In Proceedings of the 18th International Conference on Machine Learning, pages 282–289
[13] CRF Project, http://crf.sourceforge.net/
[14] W C Brandão, E S Moura, A S Silva, N Ziviani (2010), “A Self-
Supervised Approach for Extraction of Attribute-Value Pairs from Wikipedia Articles”, Proceedings of the 17th international conference on
String processing and information retrieval (SPIRE), 279-289
[15] R Hoffmann, D S Weld, F Wu (2008), “Information Extraction from
Wikipedia: Moving Down the Long tail”, Proceedings of the 14th International Joint Conference on Knowledge Discovery and Data Mining,
[16] J Lafferty, A Mccallum, K Nigam (1999), “Using maximum entropy for text classification”, Proceedings of the 16th International Joint Conference on Artificial Intelligence, 61-67
[17] T Kanungo, D M Mount, N S Netanyahu, C D Piatko, R Silverman, A
Y Wu (2002), “An efficient k-means clustering algorithm: Analysis and
50 implementation”, IEEE Transactions on Pattern Analysis and Machine Intelligence, 24(7), 881-892
[18] B E Boser, I Guyon, and V Vapnik (1992), “A training algorithm for optimal margin classifiers”, In Proceedings of the 5th Annual Workshop on
[19] WordNet: A lexical database for English, http://wordnet.princeton.edu/
[20] R Hahn, C Bizer, C Sahnwaldt, C Herta, S Robinson, M Brgle, H
Dwiger, and U Scheel (2010), “Faceted wikipedia search”, In Proceedings of the 13th International Conference of Business Information Systems, pages 1–11
[21] D P Nguyen, Y Matsuo, M Ishizuka (2007), “Exploiting syntatic and semantic information for relation extraction from Wikipedia” In Proceedings of the Workshop on Text-Mining & Link-Analysis
[22] R A Baeza-Yates, B Ribeiro-Neto (1999), “Modern Information
[23] L Chen, Z Chen, J Hu, P Wang, H Zeng (2007), “Improving text classification by using encyclopedia knowledge”, In Proceedings of the 7th
IEEE International Conference on Data Mining, pages 332–341
[24] V I Levenshtein (1966), “Binary Codes Capable of Correcting Deletions,
Insertions and Reversals”, Soviet Physics Doklady, 10, February 1966
[25] OpenNLP, http://opennlp.sourceforge.net/
[26] M Stone (1974), “Cross-validation choices and assessment of statistical predictions”, Journal of the Royal Statistical Society, B36:111–147
[27] M Cafarella, D Downey, O Etzioni, A M Popescu, T Shaked, S
Soderland, D S Weld, and A Yates (2005), “Unsupervised Named-entity Extraction from the Web: an Experimental Study”, Artificial Intelligence,
51 [28] M Banko, M Broadhead, M J Cafarella, O Etzioni, S Soderland (2007),
“Open Information Extraction from the Web”, In Proc of the 20th Intl Joint Conf on Artificial Intelligence, pages 2670–2676
[29] S Amershi, J Fogarty, R Hoffmann, K Patel, D S Weld, F Wu (2009),
“Amplifying Community Content Creation with Mixed-Initiative Information Extraction”, In Proc of the 27th Intl Conf on Human Factors in Computing Systems, pages 1849–1858.