MỤC LỤC DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC BẢNG BIỂU KÝ HIỆU CÁC CỤM TỪ VIẾT TẮT LỜI MỞ ĐẦU CHƯƠNG 1: TÌM HIỂU VỀ BÀI TOÁN 1 1.1 Mạng xã hội là gì? 1.2 Nhu cầu thực tế 1.3 Một số phương pháp đã được thực hiện CHƯƠNG 2: CÁC NGHIÊN CỨU LIÊN QUAN 2.1 Tổng quan về so khớp chuỗi, văn bản 2.1.1 Khái niệm 2.1.2 Xử lý dữ liệu 2.1.2.1 TFIDF là gì ? 2.1.2.2. Token và biểu diễn văn bản trong Text Mining 2.2 Tìm hiểu về các phương pháp tính toán độ đo tương tự 2.2.1 Độ đo Jaro (Jaro 1995 , 1989 , Winkler 1999) : 2.2.2 Độ do SoftTFIDF 2.2.3 Độ đo Edit Distance(ED) 2.2.4 Độ đo ESA(Explicit Semantic Analysis) 2.2.4.1 Giới thiệu 2.2.4.2 Xây dựng phương pháp ESA 2.2.5 Độ đo Jaccard 2.2.6 Độ đo dựa trên từ điển WordNet 2.2.6.1 Từ điển Wordnet 2.2.6.2 Xây dựng thuật toán 2.3 Quyết định nhóm và một số thuật toán 2.3.1 Bayes Naive 2.3.1.1 Công thức Bayes 2.3.1.2 Bayes Naive 2.3.2 Kỹ thuật trộn theo lý thuyết DempsterShafer (DS) 2.3.2.1 Thuyết DempsterShafer 2.3.2.2 Quy tắc trộn của DempsterShafer 29 2.3.3 Cây quyết định mờ 2.3.3.1 Cây quyết định 2.3.3.2 Logic mờ và ứng dụng vào cây quyết định CHƯƠNG 3: XÂY DỰNG CÔNG CỤ VÀ ĐÁNH GIÁ THỰC NGHIỆM 3.1 Xây dựng công cụ so khớp hồ sơ giữa các mạng xã hội 3.1.1 Xác định các thuộc tính hồ sơ người dùng 3.1.2 Chuẩn hóa dữ liệu hồ sơ người dùng về dạng FOAF 3.1.3 Sử dụng độ đo tương tự để xác định độ tương tự giữa thuộc tính của hồ sơ 3.1.4 Gán trọng số độ quan trọng cho các thuộc tính 3.1.5 Sử dụng các phương pháp để tính độ tương tự chung 3.1.6 Tính toán xây dựng ngưỡng và so sánh để đưa ra kết luận. 3.2 Thực nghiệm và đánh giá kết quả 3.2.1 Các bước tiến hành thực nghiệm 3.2.2 Kết quả và đánh giá CHƯƠNG 4: KẾT LUẬN DANH MỤC TÀI LIỆU THAM KHẢO…………………………………………………. .
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Đề tài: Xây dựng công cụ tìm kiếm và so khớp hồ sơ
người dùng trên các mạng xã hội
Giảng viên hướng dẫn : Th.s NGUYỄN THANH THỦY Sinh viên thực hiện : VŨ THÀNH TUÂN
Lớp : D09CNPM3
Khoá : D09(2009-2014)
Hệ : Chính quy
Hà Nội, tháng 11 /2013
Trang 2Em xin chân thành cảm ơn các thầy cô trong trường Học Viện Công Nghệ Bưu ChínhViễn Thông, đặc biệt là các thầy cô trong khoa công nghệ thông tin đã dạy dỗ em trong suốtnhững năm vừa qua.
Con xin gửi lời cảm ơn đến cha mẹ và những người thân đã luôn bên cạnh, động viên,ủng hộ, và giúp đỡ con trong quá trình học tập
Tôi xin gửi lời cảm ơn tới bạn bè, những người đã luôn bên cạnh tôi, giúp đỡ tôi trongsuốt thời gian vừa qua
Và đặc biệt nhất, em xin chân thành cảm ơn cô giáo, Th.s Nguyễn Thanh Thủy, người
đã trực tiếp tận tình hướng dẫn, chỉ bảo em hoàn thành đồ án này
Hà Nội, ngày 16 tháng 11 năm 2013
Vũ Thành Tuân
Trang 3NHẬN XÉT, ĐÁNH GIÁ, CHO ĐIỂM
(Của người hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Điểm: ……….(bằng chữ:… ……… … ….)
Đồng ý/ Không đồng ý cho sinh viên bảo vệ trước hội đồng chấm đồ án tốt nghiệp?.
…………, ngày tháng năm 20
CÁN BỘ - GIẢNG VIÊN HƯỚNG DẪN
(ký, họ tên)
Trang 4C TÀI LIỆU THAM KHẢO……… .52
Trang 5DANH MỤC CÁC HÌNH VẼ
DANH MỤC CÁC BẢNG BIỂU
Trang 6FOAF Friend of a Friend Định dạng dữ liệu hồ sơ
người dùng
TF Term Frequency Tần số của từ trong văn bản
IDF Inverse Document Frequency Tần số nghịch đảo của từ
trong tập dữ liệu
ESA Explicit Semantic Analysis Độ đo ngữ nghĩa
CLS Concept Learning System Hệ thống học theo khái
niệm
Trang 7LỜI MỞ ĐẦU
Trong những năm gần đây, mạng xã hội được xem là một trong những phát triển tốtnhất trên internet, mạng xã hội phản ảnh chính xác các hoạt động xã hội trên Internet, chúnghoạt động dựa trên một số kịch bản như: kết nối người nối người dùng, tích hợp dữ liệu phongphú, truy vấn thông tin… Để tham gia và duy trì trạng thái người dùng phải tạo lập một tàikhoản, sau đó người dùng thiết lập các thông tin các nhân, cũng như các thông tin về hoạtđộng của họ, tất cả các thông tin đó được cho là đại diện của mỗi cá thể, đặc trưng riêng củamỗi người Chính vì thế để phân biệt và nhận biết giữa những người dùng, chúng ta đi xemxét các thông tin hồ sơ cá nhân của họ
Ở mỗi mạng xã hội mỗi cá thể có thể phân biệt bởi ID của người dùng được cung cấpbởi chính mạng xã hội đó, tuy nhiên để phân biệt, nhận biết người dùng giữa các mạng xã hộivới nhau được xem là một vấn đề khá phức tạp và còn nhiều hạn chế Bởi ngày nay trên thếgiới có hàng trăm các mạng xã hội khác nhau và chúng gần như biệt lập và không có sự traođổi dữ liệu với nhau Đó là một những hạn chế bởi một người dùng có thể sử nhiều mạng vớicác mục đích khác nhau (để sử dụng các nhân, để làm việc, để buôn bán,…) và việc trao đổicũng như việc so khớp thông tin người dùng giữa các mạng xã hội là một vấn đề cần thiết vàcấp bách
Chính vì thế trong tài liệu này chúng ta giải quyết bài toán so khớp hồ sơ người dùnggiữa các mạng xã hội Xây dựng một công cụ cho phép so sánh nhận biết giữa hai hồ sơ cóphải là đại diện cho cùng một người dùng hay không Phương pháp này dựa trên việc tínhtoán sự giống nhau của từng thuộc tính tương ứng giữa hai hồ sơ bằng các thuật toán thíchhợp, và gán cho mỗi thuộc tính một trọng số, gọi là mức độ quan trọng của thuộc tính Tiếptheo dùng một số thuật toán kết hợp dữ liệu để cho kết quả giống nhau giữa hai hồ sơ Cuốicùng so sánh kết quả tính được với một ngưỡng (được tính toán tự động hoặc bằng tay) đểđưa ra quyết định
Tài liệu đồ án bao gồm 5 chương :
Chương 1: Tìm hiểu về bài toán: Giới thiệu về mạng xã hội, vai trò chức năng và
các hoạt động của chúng, khó khăn gặp phải từ đó phân tích nội dung bài toán, sau đó đề xuấtcách tiếp cận và giải quyết bài toán Giới thiệu về định dạng dữ liệu của mạng xã hội và cấutrúc của FOAF
Chương 2: Các nghiên cứu liên quan: Tìm hiểu về các kỹ thuật so khớp chuỗi, văn
bản như định nghĩa, phương pháp tiếp cận, ứng dụng vào bài toán Tìm hiểu về các kỹ thuậtkết hợp dữ liệu và các phương pháp xử lý văn bản
Chương 3: Xây dựng công cụ và đánh giá thực nghiệm: Trình bày các bước xây
dựng công cụ và cụ thể hóa cách áp dụng các nghiên cứu vào bài toán Nêu phương pháp thựcnghiệm: cách lấy dữ liệu, xử lý dữ liệu và cách thực hiện Đánh giá kết quả, độ chính xác củacông cụ, phân tích được ưu nhược điểm của từng phương pháp và cho nhận xét
Chương 4: Kết luận: Phần cuối cùng là kết luận tóm tắt các vấn đề đã nghiên cứu và
hướng phát triển tiếp theo
Trang 8CHƯƠNG 1: TÌM HIỂU VỀ BÀI TOÁN
Bài toán nhằm mục đích xây dựng công cụ so khớp hồ sơ cá nhân giữa các mạng xãhội, để hiểu rõ hơn về bài toán ta đi tìm hiểu sâu hơn về mạng xã hội cũng như các chứcnăng, hoạt động của chúng Tiếp đó sẽ là trình bày về nhu cầu thực tế cũng như một sốnghiên cứu đã được thực hiện để giải quyết bài toán
1.1 Mạng xã hội là gì?
Mạng xã hội, hay gọi là mạng xã hội ảo (Social Network) [19] là dịch vụ nối kết cácthành viên cùng sở thích trên Internet lại với nhau với nhiều mục đích khác nhau không phânbiệt không gian và thời gian
Mạng xã hội có những tính năng như chat, e-mail, phim ảnh, voice chat, chia sẻ file,blog và xã luận Mạng đổi mới hoàn toàn cách cư dân mạng liên kết với nhau và trở thànhmột phần tất yếu của mỗi ngày cho hàng trăm triệu thành viên khắp thế giới Các dịch vụ này
có nhiều phương cách để các thành viên tìm kiếm bạn bè, đối tác : dựa theo group (ví dụ nhưtên trường hoặc tên thành phố), dựa trên thông tin cá nhân (như địa chỉ e-mail hoặc screenname), hoặc dựa trên sở thích cá nhân (như thể thao, phim ảnh, sách báo, hoặc ca nhạc), lĩnhvực quan tâm: kinh doanh, mua bán…
Hiện nay thế giới có hàng trăm mạng mạng xã hội khác nhau,với MySpace vàFacebook nổi tiếng nhất trong thị trường Bắc Mỹ và Tây Âu, Orkutvà Hi5 tại Nam Mỹ,Friendster tại Châu Á và các đảo quốc Thái Bình Dương Mạng xã hội khác gặt hái đượcthành công đáng kể theo vùng miền như Bebo tại Anh Quốc, CyWorld tại Hàn Quốc, Mixi tạiNhật Bản, Qzone tại Trung Quốc và tại Việt Nam xuất hiện rất nhiều các mạng xã hội như:Zing Me, YuMe, Tamtay
Về bản chất, mỗi mạng xã hội cung cấp dịch vụ và chức năng cụ thể nhằm mục tiêutạo được một cộng đồng cụ thể trong thế giới thực Để sử dụng dịch vụ, các chức năng và đểgiữ được thiết lập (mối quan hệ) với các thành viên liên quan đến mình, người dùng phải tạomột tài khoản cá nhân, thành viên đã đăng ký có thể tạo hồ sơ với các hình ảnh, danh sách sởthích cá nhân, thông tin liên lạc, và những thông tin cá nhân khác :
- Facebook : Đây là trang mạng xã hội phát triển nhanh nhất, Facebook đã phát triển từ
một mạng lưới các sinh viên học đại học đến nay nó đã phát triển trên toàn cầu, mộtmạng lưới đa sắc tộc và mọi lứa tuổi Hàng trăm triệu người trên Facebook và hàngtriệu người tham gia mỗi tháng.Trên Facebook, bạn có thể kết nối với bạn bè và giađình bằng cách tìm kiếm tên hoặc nhìn thấy hình ảnh của người khác bạn đã được kếtnối, cũng như thông qua ‘mạng lưới’ bạn bè được tổ chức xung quanh địa điểm,trường học hoặc nơi làm việc
- Myspace : Myspace là một trong những mạng xã hội đầu tiên và thực sự lớn Hiện
nay nó vẫn còn có hơn 200 triệu người sử dụng Việc sử dụng Myspace đã bị giảmmạnh khi Facebook phát triển Myspace có xu hướng thu hút một nhóm nhân khẩuhọc trẻ hơn so với Facebook, và đặc biệt phổ biến với những người tham gia vào sânkhấu âm nhạc với sử dụng khả năng tuyệt vời của nó để thúc đẩy các ban nhạc và cácnghệ sĩ âm nhạc khác cực kỳ tốt
Trang 9ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Chương 1: Tìm hiểu về bài toán
- Linkedin : LinkedIn là một mạng xã hội chuyên nghiệp được thiết kế cho những
người kinh doanh hoặc các chuyên gia làm việc để làm cho các kết nối với các đồngnghiệp và địa chỉ liên hệ kinh doanh khác Nó cũng có thể phục vụ như là một phươngtiện để liên lạc với khách hàng tiềm năng, khách hàng và các đối tác Nó cho phép cácthành viên đăng hồ sơ và lịch sử làm việc Linkedin khuyến khích sử dụng cho nhữngnhóm là các đồng nghiệp, những người sử dụng lao động và những người đi kiếmviệc làm
- Zing Me : Zing Me là mạng xã hội lớn nhất của Việt Nam, chú trọng tới các tính năng
đặc trưng của một mạng xã hội như kết bạn, chat trực tuyến, viết blog, lập câu lạc bộ.Bên cạnh đó, các thành viên còn có thể tham gia diễn đàn, nghe nhạc, xem phim, chia
sẻ ảnh và tham gia các trò chơi trực tuyến Ngoài việc xây dựng thế giới ảo, Zing
Me còn thường xuyên tổ chức các sự kiện đối với người sử dụng của mình nói riênghay cộng đồng nói chung và nhận được nhiều phản hồi tích cực
1.2 Nhu cầu thực tế
Một trong những phát triển tốt nhất trên internet chính là các mạng xã hội Số lượngngười tham gia mạng xã hội ngày càng tăng lên đến hàng tỉ người tạo ra nguồn dữ liệu phongphú Về bản chất, mỗi mạng xã hội cung cấp các dịch vụ và chức năng cụ thể nhằm mục tiêutạo được một cộng đồng cụ thể trong thế giới thực Để sử dụng dịch vụ, các chức năng và đểgiữ được thiết lập (mối quan hệ) với các thành viên liên quan đến mình, người dùng phải tạomột tài khoản cá nhân, thành viên đã đăng ký có thể tạo hồ sơ với các hình ảnh, danh sách sởthích cá nhân, thông tin liên lạc, và những thông tin cá nhân khác Chính vì thế hồ sơ ngườidùng đóng vai trò đại diện hay còn gọi là hiện thân của người sử dụng trên mạng xã hội,mang đặc trưng riêng của từng cả nhân Nhưng một cá nhân hay một người sử dụng có thể sửdụng nhiều mạng xã hội khác nhau để phục phục vụ những mục đích khác nhau
Điều này dẫn đến một số trường hợp cần liên kết hồ sơ người dùng giữa các mạng xãhội với nhau Để minh họa vấn đề này chúng ta nghiên cứu một số trường hợp như sau :
- Giả sử Nguyễn Văn A đang sử dụng 2 mạng xã hội khác nhau là FaceBook để liênlạc, trao đổi thông tin với bạn bè người thân xung quanh và thứ hai là Linkedin để liênkết với đồng nghiệp đối tác làm ăn trong công việc A có một sự kiện (ví dụ như tổchức cưới hỏi, hay một ứng dụng tiện ích) muốn gửi một lời mời tới tất cả người thân,bạn bè đồng nghiệp.Vấn đề đặt ra là trong 2 danh sách bạn bè của A trên 2 mạng xãhội sẽ có những cá nhân trùng nhau (cùng biểu thị một người) mà A mong muốn gửilời mời tới họ 1 lần tránh tình trạng lặp lại gửi 2 lần cùng một thông báo
- Hay Nguyễn Văn B tham gia 2 mạng xã hội là FaceBook, Twitter và hiện tại B có rấtnhiều bạn trên FaceBook, và B muốn mở rộng vòng kết nối bạn bè trên Twitter, tức lànhững bạn bè đã có liên kết trên FaceBook nhưng chưa có liên kết trên Twitter
Chính vì thế từ những danh sách bạn bè của Nguyễn Văn A và Nguyễn Văn B chúng
ta phân tích so khớp xem những hồ sơ nào là cùng biểu thị biểu diễn cùng một người dùng.Tuy nhiên đó là một vấn đề phức tạp cần giải quyết để liên kết thông tin giữa 2 mạng xã hội
Trang 10Hình 1 1 : Mối liên kết giữa các mạng xã hội
Mặc dù mỗi mạng xã hội là sự kết nối của hàng tỉ người nhưng chúng lại được ví nhưnhững hòn đảo dữ liệu cô lập bởi sự liên kết dữ liệu giữa các mạng xã hội với nhau gần nhưkhông có Nguyên nhân xuất phát từ ba vấn đề chính sau đây:
1 Biểu diễn mạng xã hội: Mạng xã hội cung cấp cho người sử dụng phương tiện và
cách để kết nối, giao tiếp và chia sẻ thông tin với các thành viên khác trong nền tảngcủa họ Tuy nhiên, các trang web có cấu trúc lược đồ biểu diễn khác nhau và chúngđại diện cho sự chuyên biệt, các tập tin của người sử dụng khác nhau Vì vậy, chúngngăn cấm việc trao đổi thông tin và giao tiếp giữa các mạng xã hội khác nhau(chẳnghạn như chia sẻ hình ảnh, thẻ, và ý kiến)
2 Miền thuộc tính: Ngay cả khi, các trang mạng xã hội cùng chia sẽ về một người thì
thuộc tính hồ sơ của người dùng cũng không phải lúc nào cũng phổ biến Ví dụ, tênmiền giá trị của thuộc tính trong Facebook không nhất thiết phải đáp ứng các giá trịtên miền của thuộc tính tương tự trong LinkedIn
3 Mục tiêu trang web: Tùy thuộc vào các trang web và các mục tiêu người sử dụng,
đặc tính tương tự có thể được thêm vào với hai giá trị khác nhau Ví dụ, các thuộc tínhemail Facebook thường được thêm vào với một email cá nhân trong khi LinkedIn làmột email chuyên nghiệp của cùng một người dùng
1.3 Một số phương pháp đã được thực hiện
Hiện tại có một đề suất sử dụng FOAF [9] là cầu nối trung gian trong việc trao đổi dữliệu hồ sơ người dùng giữa các mạng xã hội FOAF là một ontology có cấu trúc đơn giản thừahưởng cấu trúc của RDF và XML, mô tả con người và thông tin cá nhân như tên, email,…cũng như các quan hệ xã hội với người khác như bạn bè, đồng nghiệp, giao dịch kinh doanh,
… Có thể chia các đặc tả trong FOAF thành 5 loại: thông tin cơ bản, thông tin cá nhân, các
Trang 11ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Chương 1: Tìm hiểu về bài toán
tài khoản liên lạc trực tuyến (email, chat, ), các dự án và nhóm làm việc, cuối cùng là tài liệu
và ảnh
Trung tâm của từ vựng FOAF là lớp foaf: Person, và tất cả các thông tin liên quan đến
cá nhân đều được nhóm vào lớp này Các thuộc tính được sử dụng phổ biến là tên người(foaf: name), địa chỉ thư điện tử (foaf: mbox), liên kết tới trang web cá nhân (foaf:homepage), mô tả (foaf: description) và đặc biệt là thuộc tính mô tả quan hệ giữa các cá nhân(foaf: knows) Trong FOAF, con người và các mối quan hệ có thể được mô tả theo cácnguyên tắc sau:
- Mỗi người được biểu diễn như một thể hiện của foaf: Person và được gán một URI
- Một người có nhiều thuộc tính như tên (foaf: name), nickname (foaf: nickname) hoặcngày sinh (foaf: birthday),
- Con người có thể liên hệ với nhau qua thuộc tính foaf: knows Một số tính chất và lợiích sử dụng của ontology FOAF đối với mạng xã hội và cộng đồng trực tuyến nhưsau:
• Khả năng cơ động (portability): “Khả năng cơ động” là thuật ngữ mô tả khả
năng sử dụng lại hồ sơ của một người trên nhiều mạng xã hội Từ vựng FOAFbiểu diễn thông tin về con người và mối quan hệ trong mạng xã hội theo cáchchia sẻ và máy tính có thể xử lý về ngữ nghĩa
• Tính chất mở: Từ vựng định nghĩa trong FOAF có cấu trúc đơn giản và đóng
vai trò là cơ sở để phát triển các ứng dụng cụ thể Ví dụ thuộc tính foaf:knows
mô tả mối quan hệ giữa các cá nhân Nếu muốn mô tả quan hệ chính xác hơnnhư bạn bè, đồng nghiệp, có thể xây dựng thuộc tính quan hệ mới là thuộctính con của foaf: knows
• Định danh: Xác định con người thông qua một số thuộc tính định danh như
foaf: mbox, foaf: mbox_sha1sum, là các thuộc tính duy nhất thuộc về mộtthể hiện của lớp foaf: Person Qua việc so khớp các giá trị định danh duy nhất,
ta có thể thu được quan hệ đồng nhất giữa các cá nhân thuộc về nhiều hệ thốngkhác nhau, và hợp nhất các hệ thống này lại để hình thành một mạng xã hộilớn
• Quan hệ: Thuộc tính foaf: knows mô tả mối quan hệ giữa các cá nhân và hình
thành một mạng xã hội trong cộng đồng Hai thuộc tính foaf: knows và rdfs:seeAlso được kết hợp để liên kết các tài liệu FOAF
• Liên kết con người theo sở thích: Xác định những nhóm người có mối quan
tâm hoặc sở thích chung bởi thuộc tính foaf: interest
• Hỗ trợ lọc email: Từ vựng FOAF hỗ trợ việc lọc email theo sự ưu tiên
(prioritizing) dựa trên các mối quan hệ cá nhân Sử dụng các cấp độ tin cậydẫn xuất từ FOAF file, con người có thể nhận mail ưu tiên và sau đó lọc cácmail với giá trị tin cậy thấp
Trang 12Sau đây là một số thuộc tính của FOAF:
Hình 1 2 : Các thuộc tính của FOAF
- Họ thay đổi địa chỉ mail (Do quên mật khẩu, hay bị khóa, )
- Sử dụng nhiều hơn một địa chỉ mail (mail để liên lạc bạn bè, mail để liên hệ côngviêc, hay phục vụ vui chơi giải trí,…)
Trang 13ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Chương 1: Tìm hiểu về bài toán
- Một mail có thể được sử dụng bởi nhiều người
Ngoài ra còn một số phương pháp tiếp cận khác như xây dựng một kho lưu trữ đểngười dùng tự ý thêm các hồ sơ của mình, sau đó cá nhân hóa hồ sơ dưới dạng FOAF Họkhuyến khích người dùng tạo vòng tròn kết nối giữa bạn bè để tạo đặc điểm nhận dạng hồ sơ.Song đây là một trong những vấn đề phức tạp khó kiểm soát
Trang 14CHƯƠNG 2: CÁC NGHIÊN CỨU LIÊN QUAN2.1 Tổng quan về so khớp chuỗi, văn bản
2.1.1 Khái niệm
So khớp chuỗi và so khớp văn bản nhằm mục đích tìm ra sự giống nhau (hay còn gọi
là độ đo tương tự hoặc tương đồng) giữa các chuỗi văn bản thông qua hai hình thức tiếp cận
về mặt cú pháp và ngữ nghĩa So khớp chuỗi, văn bản là một kỹ thuật đóng vai trò nền tảngtrong lĩnh vực xử lý văn bản.Rất khó để đo sự giống nhau, sự tương đồng Sự tương đồng làmột đại lượng (con số) phản ánh cường độ của mối quan hệ giữa hai đối tượng hoặc hai đặctrưng Đại lượng này thường ở trong phạm vi từ -1 đến 1 hoặc 0 đến 1 Như vậy, một độ đotương đồng có thể coi là một loại hàm tính điểm
Bài toán tính độ tương đồng câu được phát biểu như sau: Xét một tài liệu d gồm có ncâu: d = s1, s2,… sn Mục tiêu của bài toán là tìm ra được một giá trị của hàm S(si, sj) với S∈(0, 1) Hàm S(si, sj) được gọi là độ tương đồng giữa hai câu si và sj Giá trị này càng cao thì sựgiống nhau về ngữ nghĩa của hai câu càng lớn Độ tương đồng ngữ nghĩa là một giá trị tin cậyphản ánh mối quan hệ ngữ nghĩa giữa hai câu Trên thực tế, khó có thể lấy một giá trị cóchính xác cao bởi vì ngữ nghĩa chỉ được hiểu đầy đủ trong một ngữ cảnh cụ thể
Mặc dù hiện này dữ liệu được lưu trữ dưới nhiều hình thức khác nhau, nhưng văn bảnvẫn là hình thức chủ yếu để lưu trữ và trao đổi thông tin Đặc biệt trong bài toán này việc sokhớp hồ sơ người dùng được thực hiện trên tập dữ liệu lớn, cũng như cần độ chính xác caocủa các phương pháp so khớp cho các thuộc tính
2.1.2 Xử lý dữ liệu
2.1.2.1 TF-IDF là gì ?
TF- IDF viết tắt của thuật ngữ tiếng Anh term frequency – inverse document
frequency, của một từ là một con số thu được qua thống kê thể hiện mức độ quan trọng của từnày trong một văn bản, mà bản thân văn bản đang xét nằm trong một tập hợp các văn bản.Trong đó:
TF- term frequency – tần số xuất hiện của 1 từ trong 1 văn bản Cách tính:
TF ( t , d ) = log ( f (t , d ) + 1 ) (2.1)Với f(t, d) - số lần xuất hiện từ t trong văn bản d
IDF – inverse document frequency Tần số nghịch của 1 từ trong tập văn bản
(corpus)
Tính IDF để giảm giá trị của những từ phổ biến Mỗi từ chỉ có 1 giá trị IDF duy nhấttrong tập văn bản
IDF ( t , D ) = log (2.2)
Trang 15ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Chương 2: Các nghiên cứu liên quan
• |D| là tổng số văn bản trong hệ thống
• | { d ϵ D : t ϵ d}|: Là số văn bản trong D chứa từ t Nếu từ đó không xuất hiện ở bất
cứ một văn bản nào trong tập thì mẫu số sẽ bằng 0 => phép chia cho không khônghợp lệ, vì thế người ta thường thay bằng mẫu thức 1 +| { d ϵ D : t ϵ d } |
• Cơ số logarit trong công thức này không thay đổi giá trị của một từ mà chỉ thu hẹpkhoảng giá trị của từ đó Vì thay đổi cơ số sẽ dẫn đến việc giá trị của các từ thayđổi bởi một số nhất định và tỷ lệ giữa các trọng lượng với nhau sẽ không thay đổi.(nói cách khác, thay đổi cơ số sẽ không ảnh hưởng đến tỷ lệ giữa các giá trị IDF).Tuy nhiên việc thay đổi khoảng giá trị sẽ giúp tỷ lệ giữa IDF và TF tương đồng đểdùng cho công thức TF-IDF như bên dưới
Giá trị TF-IDF:
TF-IDF(t,d,D)=tf(t,d)*idf(t,D) (2.3)
Những từ có giá trị TF-IDF cao là những từ xuất hiện nhiều trong văn bản này, vàxuất hiện ít trong các văn bản khác Việc này giúp lọc ra những từ phổ biến và giữ lại những
từ có giá trị cao (từ khoá của văn bản đó)
2.1.2.2.Token và biểu diễn văn bản trong Text Mining
Hiện nay, cơ sở dữ liệu văn bản (text database) đang phát triển nhanh chóng và thuhút sự quan tâm nghiên cứu bởi sự gia tăng nhanh chóng số lượng thông tin ở dạng số, ví dụnhư các loại tài liệu điện tử, email, thư điện tử, các trang web…Có thể thấy hầu hết thông tincủa các chính phủ, các ngành công nghiệp, kinh doanh, trường học…đều được số hóa và lưutrữ ở dưới dạng cơ sở dữ liệu này Dữ liệu lưu trữ trong cơ sở dữ liệu văn bản là dữ liệu báncấu trúc (semistructrured data), tức là chúng không hoàn toàn phi cấutrúc(unstructured)nhưng cũng không hoàn toàn có cấu trúc Ví dụ, một tài liệu có thể chứamột vài trường có cấu trúc chẳng hạn như tiêu đề, tên tác giả, ngày xuất bản, phân loại…nhưng cũng có thể chứa một lượng lớn những thành phần văn bản phi cấu trúc chẳng hạn nhưphần tóm tắt hay nội dung của tài liệu Do đó vấn đề đặt ra là làm sao để có thể tıım kiếm vàkhai thác tri thức từ nguồn dữ liệu như vậy Các kỹ thuật để giải quyết vấn đề này được gọi là
kỹ thuật "Text Mining" hay khai phá dữ liệu văn bản
A Không gian vector
Bước đầu tiên của mọi phương pháp phân loại là chuyển việc mô tả văn bản dùngchuỗi ký tự thành một dạng mô tả khác, phù hợp với các thuật toán học theo mẫu và phânlớp Hầu hết các thuật toán đều sử dụng cách biểu diễn văn bản sử dụng vecto đặc trưng, sựkhác nhau có chăng là việc chọn không gian đặc trưng khác nhau
Hướng tiếp cận theo kiểu không gian vector được sử dụng khá nhiều trong các bàitoán xử lý ngôn ngữ tự nhiên, phân loại văn bản Ý tưởng của phương pháp không gian vectonhư sau: chúng ta biểu diễn tất cả các tài liệu trong dataset và câu truy vấn thành vector trongkhông gian nhiều chiều tương ứng với tất cả các từ khóa (tập từ vựng), sau đó sử dụng một độ
đo tương tự giữa vector truy vấn với các vector tài liệu để tính toán, xử lý hay phân loại tùytheo mục đích sử dụng
Trang 16Bản chất của mô hình không gian vector là mỗi văn bản được biểu diễn thành mộtvector mà mỗi thành phần là một thuật ngữ riêng biệt trong tập văn bản gốc và được gán mộtgiá trị trọng số biểu thị mức độ quan trọng của từng thuật ngữ đối với văn bản Có nhiều cáchtính trọng số cho thuật ngữ, sau đây là một số cách tính trọng số thuật ngữ điển hình:
- Tính trọng số theo mô hình Boolean
- Tính trọng số theo mô hình tần suất – TF
- Tính trọng số theo mô hình nghịch đảo tần số văn bản - IDF
- Tính trọng số theo mô hình kết hợp TF-IDF
Mô hình Boolean là một mô hình cung cấp một cấu trúc rất dễ hiểu đối với ngườidùng hệ thống truy tìm thông tin Các câu truy vấn được đặc tả như một biểu thức Boolean cóngữ nghĩa chính xác Tuy nhiên, mô hình Boolean có các khuyết điểm lớn sau: Đầu tiên,chiến lược thu thập thông tin của nó dựa trên tiêu chuẩn quyết định nhị phân (nghĩa là một tàiliệu được xác định hoặc là thích hợp hoặc là không thích hợp), chứ không có khái niệm phânhạng, thứ hai tuy các biểu thức Boolean có ngữ nghĩa rõ ràng, việc chuyển nhu cầu của ngườidùng sang boolean thật không dễ dàng Thực tế, hầu hết người dùng đều thấy khó khăn khichuyển yêu cầu truy vấn của họ sang dạng biểu thức Boolean Mô hình Boolean kiểm tra sựxuất hiện của một từ khóa biểu diễn một tài liệu, hoặc là có hoặc là không Nghĩa là trọng sốcủa một từ khóa biểu diễn ở dạng nhị phân, hoặc là 0 hoặc là 1, hay là wi,j ϵ{0,1} Một truyvấn q bao gồm các từ khóa biểu diễn được liên kết bởi and, or và not Một câu truy vấn làmột biểu thức Boolean và có thể được biểu diễn dưới dạng hội của các vector kết hợp (DNF)
Ví dụ,câu truy vấn q = Ka ˄ (Kb ˅ ¬ Kc ) có thể được viết dưới dạng vector qdnf = (1, 1, 1) ˅(1, 1, 0) ˅ (1, 0, 0), trong đó mỗi thành phần là một vector có trọng số nhị phân liên kết với
bộ ba (ka, kb, kc).Các vector có trọng số nhị phân này được gọi là thành phần kết hợp củavector qdnf
Như đã trình bày ở trên mô hình TF-IDF được sử dụng rộng rãi và đem lại hiệu quảcao Trọng số thể hiện rõ được tầm quan trọng của từ đối với văn bản Tuy nhiên công thứctính TF có thể có nhiều cách tính khác đối với văn bản dài, thì công thức được biến đổi chophù hợp Ví dụ trong một tài liệu lớn thì một từ khóa có thể xuất hiện đến 25 lần nhưng trongmột tài liệu nhỏ thì không có từ khóa nào có thể xuất hiện đến 25 lần Để giải quyết vấn đềnày một số công thức đã ra đời :
TF ( t , d ) = (2.4)
• Thương của số lần xuất hiện 1 từ trong văn bản và số lần xuất hiện nhiều nhất củamột từ bất kỳ trong văn bản đó (giá trị sẽ thuộc khoảng [0, 1])
• f(t, d) - số lần xuất hiện từ t trong văn bản d
• max{ f(w,d) : w ∈ d} - số lần xuất hiện nhiều nhất của một từ bất kỳ trong vănbản
Trang 17ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Chương 2: Các nghiên cứu liên quan
Hoặc sử dụng công thức đơn giản hơn:
TF (t , d ) = (2.5)Trong đó :
• f(t,d) - số lần xuất hiện từ t trong văn bản d
• nd – là tổng số từ trong văn bản d
Các đặc trưng của văn bản khi biểu diễn dưới dạng vector:
- Số chiều không gian đặc trưng thường rất lớn
- Có các đặc trưng độc lập nhau, sự kết hợp các đặc trưng này thường không có ýnghĩa trong phân loại
- Đặc trưng rời rạc: vecto d i
kí tự để phân tách giữa các token
Hiện nay áp dụng cho tiếng việt có một số phương pháp được đề ra đơn giản làphương pháp k-gram dựa trên thống kê trên trang Vdic [13] có 96,9% cụm từ tiếng việt đượccấu tạo từ 1 đến 4 từ Chính vì thế để phân tách các token trong đoạn văn ta nhóm k = 1, 2, 3,
4 từ liền nhau thành 1 token Đây được xem là một trong những phương pháp thường xuyên
Trang 18Bảng 2 1 : Tỉ lệ tần xuất độ dài của các từ xuất hiện trên Vdict
Ngoài ra chương trình vnTokenizer [14] được sử dụng để tách từ cho các văn bảntiếng Việt được nghiên cứu và phát triển bởi Lê Hồng Phương và Nguyễn Thị Minh Huyềnthuộc Khoa Toán-Cơ-Tin học, Trường Đại học Khoa học Tự nhiên, ĐHQG Hà Nội, ViệtNam Cho độ chính xác cao 96%-98%, đang được xem là một trong những công cụ tốt nhất
để phân tách token
2.2 Tìm hiểu về các phương pháp tính toán độ đo tương tự
Để so sánh hai hồ sơ người dùng ta đi so sánh hai bộ thuộc tính của chúng Do hồ sơngười dùng có rất nhiều thuộc tính khác nhau, và cấu trúc cũng như từ ngữ về tính chất cũngkhác nhau, ví dụ chẳng hạn so khớp về thuộc tính mô tả thì đòi hỏi về ngữ nghĩa, cùng mô tả
về một vấn đề nhưng cú pháp khác nhau Hay về thuộc tính mbox không có ý nghĩa về mặtngữ nghĩa chúng ta chỉ đơn thuần là so sánh sự khác nhau về từ Chính về thế mỗi một thuộctính sẽ có các phương pháp khác nhau Về cơ bản sẽ chia thành thành hai loại chính là sosánh về mặt ngữ nghĩa, và so sánh cú pháp:
- Cách tiếp cận về cú pháp: Cho kết quả về độ tương tự gần đúng về chữ cái hay
từ giữa 2 câu, tuy nhiên chỉ áp dụng giữa các câu hạn chế về kí tự bởi sự sai khác
do đánh máy, hoặc nhiều yếu tố khác tạo sự sai lệch về kí tự cũng như vị trí giữacác từ Thường là các thuộc tính chính xác như mbox, homepage, img,…
- Cách tiếp cận về ngữ nghĩa: Được sử dụng để đo lường hai giá trị, theo từ điển
thì khác nhau, nhưng ngữ nghĩa tương tự Có thể tính toán độ tương tự dựa trêncác bộ từ điển như WordNet, Wikipedia hay có thể được dựa trên mô hình vectorkhông gian, thống kê, hoặc phân tích ngữ nghĩa tiềm ẩn
Sau đây là một số phương pháp tính toán độ đo tương tự:
2.2.1 Độ đo Jaro (Jaro 1995 , 1989 , Winkler 1999)
Độ đo Jaro [5] là một trong những biện pháp dựa trên cú pháp tối ưu được chủ yếu
dành cho so sánh chuỗi ngắn Nó được dựa trên số lượng và thứ tự của các ký tự chung giữahai chuỗi Jaro được đánh giá là một trong những phương pháp đơn giản nhưng khá hiệu quả.Giả sử cho 2 chuỗi S = a1 , a2 , , aK và T = b1 , b2 ,… bL Và kí tự ai trong S được gọi là kí
tự chung với T khi chúng thỏa mãn điều kiện bj = ai với (i - H ≤ j ≤ i +H và H= ) Từ đó ta có
S’= a1 , a2 , …, aK’ và T’ = b1 , b2, …, bL’ từ đó ta tính được TS’,T’ là số kí tự hoán đổi của haichuỗi S’ và T’ nếu kí tự a tại vị trí I của S’ thỏa mãn ai’≠ bi’ Đo tương tự giữa hai chuỗi S, Tđược tính theo công thức:
SimJARO ( S, T )= ( + + ) (2.6)Trong đó:
• |s| và |t| là độ dài của mỗi chuỗi số
• |s’| và |t’| là số kí tự chung
• T là số kí tự hoán đổi
Trang 19ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Chương 2: Các nghiên cứu liên quan
Năm 1999, một phương pháp cải tiến do Winkler đề ta xây dựng thêm P với P là tiền
tố chung đầu tiên của S,T và P’=Min(P,4) Độ tương tự của S và T sẽ dựa trên công thức sau:
Jaro-Winkler ( S , T ) = Jaro ( S , T ) + 0,1 * P’ * ( 1 - Jaro ( S , T ) ) (2.7)
Ví dụ 1 : Cho 2 chuỗi S = MARTHA và T = MARHTA ta có :
Jaro-Winkler ( S , T ) = 0,767 + 0,1* 2* ( 1 – 0,767 ) = 0.813
Trang 202.2.2 Độ do SoftTFIDF
Là một trong những kĩ thuật phân tích cú pháp tốt nhất cho chuỗi dài dựa trên việc sosánh các token (cụm từ) tương tự giữa hai câu Bằng cách lọc những token chung giữa haiđoạn văn sau đó tính độ quan trọng của chúng với đoạn văn Từ đó sử dụng cosin để tính độtương đồng giữa hai câu SoftTFIDF [2, 5] có hai ưu điểm chính : Thứ tự của Token khôngquan trọng và nhưng token không chung sẽ không làm ảnh hưởng đến độ đo tương tự
Sử dụng TFIDF để tính chỉ số độ quan trọng của từ cho mỗi văn bản Trong mô hìnhVector , một tài liệu được biểu diễn bằng một Vector trên một tập từ khoá chỉ mục, trong đótrọng số của từ khoá chỉ mục tương ứng với mỗi chiều là một giá trị trong khoảng [ 0 , 1].Gọi Vector biểu diễn tài liệu S là (w1s, w2s,…, wns) và Vector cho tài liệu T là (w1t, w2t,…,
wns) Độ tương tự giữa T và Q được định nghĩa là Cosine của góc giữa hai Vector biểu diễn S
và T, tức là:
Sim(S,T)= (2.8)
Với V(w,S)= (2.9)Một nhược điểm chung của phương pháp nói trên là các độ đo đó đều là độ tương tự
và do đó đối xứng Để tìm được từ w là giao của 2 văn bản S và T không phải lúc nào chúngcũng giống nhau hoàn toàn, chính vì thế Monge and Elkan đã đề ra công thức tính như sau:
Cho 2 văn bản S và T được biểu diễn bởi các cụm từ con bên trong S = a1, a2,…, aK và
T = b1, b2,…, bL ta có độ tương tự giữa S, T được tính như sau:
Sim(S,T)= (2.10)
Để áp dụng công thức trên với TF-IDF thì phiên bản “Soft” đã ra đời Gọi S, T là 2văn bản cần so sánh, và CLOSE(θ, S, T) = {u∈S| ∃v∈T: sim'(u, v) >θ}, với sim'(u, v) độtương tự thứ cấp giữa u và v Với mỗi u∈CLOSE(θ, S, T), đặt D(u, T) = maxvϵT sim'(u, v).Khi đó, độ tương tự giữa S và T với phương pháp Soft TF-IDF được tính theo công thức:
SoftTFIDF(S; T )= (2.11)
2.2.3 Độ đo Edit Distance(ED)
Độ đo Jaro hay còn gọi là khoảng cách Levenshtein[6], khái niệm Khoảng cách
Levenshtein thể hiện khoảng cách khác biệt giữa 2 chuỗi kí tự Khoảng cách Levenshteingiữa chuỗi S và chuỗi T là số bước ít nhất biến chuỗi S thành chuỗi T thông qua 3 phép biếnđổi là:
- Xoá 1 kí tự
- Thêm 1 kí tự
- Thay kí tự này bằng kí tự khác
Trang 21ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Chương 2: Các nghiên cứu liên quan
Khoảng cách này được đặt theo tên Vladimir Levenshtein, người đã đề ra khái niệmnày vào năm 1965 Nó được sử dụng trong việc tính toán sự giống và khác nhau giữa 2 chuỗi,như chương trình kiểm tra lỗi chính tả của winwordspellchecker Ví dụ: Khoảng cáchLevenshtein giữa 2 chuỗi "kitten" và "sitting" là 3, vì phải dùng ít nhất 3 lần biến đổi
- kitten -> sitten (thay "k" bằng "s")
- sitten -> sittin (thay "e" bằng "i")
- sittin -> sitting (thêm kí tự "g")
Để tính toán được khoảng cách giữa 2 chuỗi ta sử dụng thuật toán quy hoạch động
Để minh họa cho thuật toán ta cùng xem một ví dụ sau:
Cho X=x1,x2,…,xn và Y=y1,y2,…,ym Với xi,yj là các kí tự
d(i,j) : là khoảng cách giữa x1x2…xi và y1y2…yj
Với ý tưởng là sử dụng biểu thức quay lui , tính d( i, j) từ các giá trị được tính trước
đó của d
Biến đổi chuỗi x1x2…xi thành chuỗi y1y2…yj
- Biến đổi chuỗi x1x2…xi-1 thành y1y2…yj-1 ,sau đó copy xi vào yj nếu xi=yj
- Biến đổi chuỗi x1x2…xi-1 thành y1y2…yj-1 ,sau đó thay thế xi bởi yj nếu xi≠yj
- Xóa xi,sau đó biến đổi chuỗi x1x2…xi-1 thành y1y2…yj
- Biến đổi chuỗi x1x2…xi thành y1y2…yj-1 ,sau đó chèn thêm yj
Giá trị d(i,j) là tối thiểu của các chi phí biến đổi ở trên
Ta có biểu thức :
d(i,j)=MinVới c(xi,yj)=
Đoạn chương trình Java sau đây minh họa cho thuật toán quay hoạch động trên :
Cho 2 chuỗi s1,s2 ,khoảng cách giữa 2 chuỗi được tính trên mảng 2 chiều [m+1][n+1] Với m,n lần lượt là chiều dài tương ứng của s1 và s2.
int [][]d=new int[m+1][n+1];
for (i=0;i<=m;i++){
d[i][0]=i;
} for (j=0;j<=n;j++){
d[0][j]=j;
} for (i=1;i<=m;i++){
for (j=1;j<=n;j++){
if (s1.charAt(i-1)==s2.charAt(j-1)){
cost=0;
Trang 22cost=1;
} d[i][j]=getmin(d[i-1][j]+1,d[i][j-1]+1,d[i-1][j-1]+cost); }
Bảng 2 2 : So sánh chuỗi kitten và stting
Như vậy khoảng cách của hai chuỗi là 3
Tương tự với hai chuỗi Saturday và Sunday
Bảng 2 3 : So sánh chuỗi Saturday và Sunday
Như vậy khoảng cách của hai chuỗi Saturday và Sunday là 3
Từ khoảng cách của hai chuỗi ta tính được độ tương tự của 2 chuỗi thông qua côngthức:
Trang 23ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Chương 2: Các nghiên cứu liên quan
SimEditDistance ( S , T ) = 1 - (2.12)
Trong đó :
• s và t: hai giá trị để so sánh
• d: khoảng cách (chi phí) giữa s và t
• ls và lt: chiều dài của s và t tương ứng
• max (ls, lt): chiều dài tối đa giữa s và t
2.2.4 Độ đo ESA (Explicit Semantic Analysis)
2.2.4.1 Giới thiệu
Như chúng ta thấy, các phương pháp đã nêu trên đều sử dụng sự giống nhau về cúpháp (chữ cái hay các từ, cụm từ) để tính toán sự tương đồng giữa các đoạn văn Song về mặt
ngữ nghĩa không được tính đến Chính vì thế Explicit Semantic Analysis (ESA) [7] là một kỹ
thuật sử dụng Wikipedia để tính toán quan hệ ngữ nghĩa và được coi là một trong nhữngphương pháp tốt nhất hiện nay
Tính toán quan hệ ngữ nghĩa của các văn bản ngôn ngữ tự nhiên đòi hỏi phải truy cậpvào một lượng lớn các kiến thức chung và lĩnh vực kiến thức thế giới cụ thể
Làm thế nào có thể tính toán được sự liên quan giữa “con mèo” và “con chuột ” ?Hay những gì về "chuẩn bị bản thảo" và "viết một bài báo" ? Đây là vấn đề được con ngườithực hiện thường xuyên trong cuộc sống nhưng đối với máy tính nó là một thách thức lớn.Con người không chỉ đánh giá văn bản ở mức từ cơ bản, mà họ đánh giá chúng sâu sắc hơnnhiều dựa trên nền tảng kiến thức và kinh nghiệm của họ Từ lâu vấn đề xử lý ngôn ngữ tự
nhiên đã được đưa vào máy tính Xử lý ngôn ngữ tự nhiên (natural language processing
-NLP) là một nhánh của trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của conngười Trong trí tuệ nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất
vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ là công cụ hoàn hảo nhất của tưduy và giao tiếp
Phương pháp ESA xuất phát từ ý tưởng muốn tăng cường số lượng đại diện cho vănbản dựa trên lượng kiến thức chung thế giới Chúng tôi thực hiện tính toán biểu diễn văn bảndựa trên một tập hợp các khái niệm được biểu hiện bằng các trọng số cho biết sự liên quancủa văn bản tới các khái niệm tự nhiên, xác định được con người tạo ra và có thể dễ dàng giảithích Để làm được điều này, chúng tôi sử dụng các khái niệm được Wikipedia định nghĩa,với lợi thế là bách khoa toàn thư lớn nhất đa dạng nhất thế giới và số lượng khái niệm tănglên không ngừng theo thời gian
Wikipedia là một bách khoa toàn thưnội dung mở bằng nhiều ngôn ngữ trên Internet.Wikipedia được viết và xây dựng do rất nhiều người dùng cùng cộng tác với nhau, cho nên aimuốn thay đổi những bài viết, chỉ cần có một trình duyệt Web và khả năng truy cập Internet
Dự án này, nói chung, bắt đầu từ ngày 15 tháng 1 năm 2001 để bổ sung bách khoa toàn
Trang 24triệu bài trong phiên bản tiếng Anh (English Wikipedia) và có gần 2 triệu bài viết bằng tiếng
Việt, vào tháng 1 năm 2006, nó có hơn 750.000 thành viên Từ khi nó được mở cửa,Wikipedia càng ngày càng nổi tiếng và sự thành công của nó đã nảy sinh ra vài dự án liênquan Wikipedia hiện có hơn 200 phiên bản ngôn ngữ, trong đó vào khoảng 100 đang hoạtđộng 15 phiên bản đã có hơn 500.000 bài viết: tiếng Anh, Đức, Pháp, Ba Lan, Nhật, Ý, Thụy
Việt Phiên bản tiếng Đức đã được phát hành trên đĩa DVD, và nhiều phiên bản khác đượcsao chép qua website khác
2.2.4.2 Xây dựng phương pháp ESA
Để xây dựng phương pháp ESA chúng ta phải thực hiện qua 4 bước:
- Lấy và xử lý dữ liệu từ Wikipedia
- Tính toán dữ liệu lấy từ Wikipedia
- Tính toán độ liên quan của văn bản thành vector được đại diện bởi các khái niệmWikipedia
- Sử dụng các thuật toán để tính độ tương tự giữa 2 văn bản
Hình 2 1 : Thuật toán ESA
A Lấy và xử lý dữ liệu Wikipedia
Mỗi khái niệm trên Wikipedia là duy nhất được xác định bởi một URI, chúng đượcxây dựng hoàn toàn bởi ngôn ngữ tự nhiên Mỗi khái niệm được giải thích bởi một bài viếtxoay quanh khái niệm và những vẫn đề liên quan đến khái niệm
Đầu tiên để xây dựng các khải niệm, ta phải lấy được dữ liệu từ Wikipedia.Về phíanhà xây dựng và phát triển Wikipedia có cung cấp bản sao chép dữ liệu về Wikipedia theo
Trang 25ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Chương 2: Các nghiên cứu liên quan
định kì Người dùng có thể truy cập vào http://dumps.wikimedia.org/ để lấy dữ liệu Chúngđược chia thành nhiều thứ tiếng và thời gian update, các kiểu dữ liệu cho người dùng lựachọn Chúng ta xây dựng bộ tài liệu với tiếng việt nên sẽ truy cập vào địa chỉ chứa các saolưu của Wikipedia [15]
Hình 2 2 : Nguồn dữ liệu Wikipedia
Sau đó lấy dữ liệu với dạng xml để tách dữ liệu Dữ liệu thu được bao gồm 1.142.543khái niệm, sau khi loại bỏ những khái niệm ngắn ít hơn 100 từ và có ít hơn 5 link liên kết đi
và về chúng ta còn 291.220 khái niệm Sau đây là cấu trúc của 1 khái niệm dưới dạng XML:
Trang 26'''Chè''' trong tiếng Việt có thể là:
*Một trong số các tên gọi của loài thực vật có tên khoa học là ''Camellia sinensis'', dùng để sản xuất các loại chè ([[trà]]) uống Xem bài [[Chè (thực vật)]].
*Tên gọi của một số món ăn trong nghệ thuật [[ẩm thực]] Việt Nam, được nấu chủ yếu từ gạo và/hoặc đỗ (đậu) cùng với đường và một số nguyên liệu khác để tạo hương vị Xem thêm bài [[Chè (ẩm thực)]].
*Bánh chè là tên của một mảnh xương tròn trước đầu gối, giữa hai mối nối xương đùi và xương cẳng chân.
đó loại bỏ các từ dừng, từ thừa, hay các đoạn HTML có trong văn bản
B Tính toán dữ liệu lấy từ Wikipedia
Mỗi khái niệm Wikipedia được biểu diễn như là một vector thuộc tính của các từ xuấthiện trong bài viết tương ứng Trọng số của các vecto được thể hiện bằng phương phápTFIDF [Salton và McGill, 1983] Những trọng số này thể hiện cho mối quan hệ giữa các từ
và khái niệm.Qua đó có thể thấy rằng với trọng số càng cao thì mức độ quan trọng của chúngvới khái niệm càng cao, chúng có thế được coi là các từ khóa để định nghĩa ra khái niệm Đểtăng tốc độ tính toán ta lược bỏ đi những từ có trọng số quá thấp, tức là ít có quan hệ với kháiniệm, thường là các từ gây nhiễu
Trang 27ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Chương 2: Các nghiên cứu liên quan
Nhận thấy rằng các văn bản đầu vào cũng được đưa ra dưới hình thức tương tự nhưkhái niệm Wikipedia, xoay quanh một chủ đề mô tả về sở thích, hay mô tả về một ai đó,…Chính vì thế các từ của chúng có một độ liên quan nhất định đến các khái niệm về ngữ nghĩa,cho phép chúng ta tính được ngữ nghĩa (đại diện ngữ nghĩa) thông qua các khái niệm
C Tính toán độ liên quan của văn bản thành vecto được đại diện bởi các khái niệm Wikipedia.
Như đã trình bày ở trên các văn bản đầu vào cũng sẽ biểu diễn bởi vector thuộc tínhcủa các từ trong văn bản với các trọng số là các trọng số TFIDF thể hiện mỗi liên hệ của từvới văn bản Giả sử Cho T={Wi} là văn bản đầu vào, và <Vi> là vector TF-IDF của nó, với
Vi là trọng số của từ Wi Cho <Kj> là chỉ số nghịch đảo của từ Wi , với Kj là định lượngmức độ quan trong của từ Wi cùng với khái niệm Wikipedia Cj , {Cj ϵ C1,… ,Cn} ( trong đó
N là tổng số các khái niệm Wikipedia) Sau đó, việc giải thích ngữ nghĩa vector V cho vănbản T là một vector của chiều dài N, trong đó trọng lượng của từng khái niệm Cj được địnhnghĩa là Các mục của vector này phản ánh sự liên quan của các khái niệm tương ứng vớivăn bản T
D Sử dụng các thuật toán để tính độ tương tự giữa 2 văn bản.
Để tính độ tương tự giữa 2 văn bản ta sử dụng Cosine của hai vectơ có thể được bắtnguồn bằng cách sử dụng công thức Euclide:
a b=||a|| ||b|| cos Ɵ (2.13)
Cho hai vector của các thuộc tính, A và B, độ tương tự của chúng được tính theo công
thức :
Similarity =cos(Ɵ)= = (2.14)Với Ai, Bi là các trọng số tương ứng của 2 vecto biểu diễn quan hệ giữa văn bản vàcác khái niệm
Giá trị của độ tương tự sẽ nằm trong khoảng từ (0,1) Vì các số Ai,Bi không thể là các