Xây dựng tag cloud bằng cây n-gram

32
Xây dựng tag cloud bằng cây n-gram Lê Ngọc Minh

description

Mô tả về cây n-gram được sử dụng để tạo ra tag cloud cho một tập tài liệu.Có nhiều hoạt họa không được slideshare hỗ trợ :-(

Transcript of Xây dựng tag cloud bằng cây n-gram

Page 1: Xây dựng tag cloud bằng cây n-gram

Xây dựng tag cloud bằng cây n-gramLê Ngọc Minh

Page 2: Xây dựng tag cloud bằng cây n-gram

2

Nội dung

1. Giới thiệu2. Phát biểu bài toán3. Cây n-gram4. Giải quyết bài toán bằng cây n-

gram5. Thực nghiệm6. Hướng phát triển

Page 3: Xây dựng tag cloud bằng cây n-gram

3

1. Giới thiệu2. Phát biểu bài toán3. Cây n-gram4. Giải quyết bài toán bằng cây n-

gram5. Thực nghiệm6. Hướng phát triển

Page 4: Xây dựng tag cloud bằng cây n-gram

5

Quản lý danh tiếng trực tuyến

Danh tiếng: Những gì mọi người nói về một nhãn hiệu, tên tuổi.

Quản lý danh tiếng:◦Nắm được cộng đồng quan tâm đến

điều gì.◦Nắm được ý kiến (tích cực/tiêu cực)

của cộng đồng về điều đó.◦Giải quyết khủng hoảng: loại bỏ

những ý kiến không thuận lợi hoặc đẩy nó xuống thấp hơn trong kết quả tìm kiếm.

Page 5: Xây dựng tag cloud bằng cây n-gram

6

Khách hàng của ORM

Page 6: Xây dựng tag cloud bằng cây n-gram

7

Nghiên cứu liên quan đến ORM

Năm 2000: 6Năm 2001: 10...Năm 2009: 1929Năm 2010: 3030Năm 2011: 4022Đầu năm 2012: 896

(*) Tìm kiếm trên 3 từ khóa "sentiment analysis", “sentiment classification” và "opinion mining" .2000 2002 2004 2006 2008 2010

0

500

1000

1500

2000

2500

3000

3500

4000

4500

Số bài báo trên Google Scholar *

Page 7: Xây dựng tag cloud bằng cây n-gram

8

Tag cloudNhững cụm từ thường được nhắc đến

khi đề cập đến một nhãn hiệu, tên tuổi. Giả sử có sự tương quan giữa số lần

được nhắc đến và độ quan tâm◦Nhắc đến nhiều trên báo, diễn đàn, mạng

xã hội nhiều người đọc nhiều người quan tâm.

◦Nhiều người quan tâm Nhiều thảo luận trên diễn đàn, mạng xã hội Được nhắc đến nhiều.

Cho biết cộng đồng quan tâm nhiều nhất đến điều gì.

Page 8: Xây dựng tag cloud bằng cây n-gram

9

Ví dụ về tag cloud (1)

Tag cloud cho từ khóa VnIdol.Dự đoán:

◦Chương trình “Gắn kết yêu thương” được quan tâm.◦Có sự so sánh với các chương trình khác.

Page 9: Xây dựng tag cloud bằng cây n-gram

10

Ví dụ về tag cloud (2)<tagcloud><tag string="show truyền_hình_thực_tế" count="4" /><tag string="tổ_chức trình_diễn" count="4"/><tag string="trình_diễn thời_trang" count="4"/><tag string="bộ_vi_xử_lý intel" count="4"/><tag string="intel core" count="4"/><tag string="core 2" count="4"/><tag string="2 duo" count="4"/><tag string="ngôi_nhà âm_nhạc" count="4"/><tag string="tìm_kiếm tài_năng" count="4"/><tag string="s got_talent" count="4""/><tag string="mở_rộng sân_chơi" count="3" /><tag string="sân_chơi ca_hát" count="3" /></tagcloud>

Page 10: Xây dựng tag cloud bằng cây n-gram

11

Ví dụ về tag cloud (2)Nhận xét:

◦Một số cụm xuất hiện cùng nhau nhưng bị tách ra thành các n-gram khác nhau

◦Các cụm ngắn ít ý nghĩa◦Nhiều cụm ngắn gây mất tập trung

Page 11: Xây dựng tag cloud bằng cây n-gram

12

Ví dụ về tag cloud (2)<tagcloud><tag string="show truyền_hình_thực_tế"

count="4" /><tag string="tổ_chức trình_diễn thời_trang"

count="4"/><tag string="bộ_vi_xử_lý intel core 2 duo"

count="4"/><tag string="ngôi_nhà âm_nhạc" count="4"/><tag string="tìm_kiếm tài_năng" count="4"/><tag string="s got_talent" count="4""/><tag string="mở_rộng sân_chơi ca_hát"

count="3" /></tagcloud>

Page 12: Xây dựng tag cloud bằng cây n-gram

13

1. Giới thiệu2. Phát biểu bài toán3. Cây n-gram4. Giải quyết bài toán bằng cây n-

gram5. Thực nghiệm6. Hướng phát triển

Page 13: Xây dựng tag cloud bằng cây n-gram

14

Phát biểu bài toánĐầu vào: tập các câu S = {S1, S2,

…, SN}, số pĐầu ra: các bộ (g,c)

◦g : n-gram trong S (n ≥ p).◦c : số lần xuất hiện tương ứng.◦Ràng buộc: ghép tất cả các n-gram

luôn xuất hiện cùng nhau tạo thành n-gram dài hơn.

Page 14: Xây dựng tag cloud bằng cây n-gram

15

1. Giới thiệu2. Phát biểu bài toán3. Cây n-gram4. Giải quyết bài toán bằng cây n-

gram5. Thực nghiệm6. Hướng phát triển

Page 15: Xây dựng tag cloud bằng cây n-gram

16

Định nghĩaCho trước S và p, cây n-

gram T là cây:1. Tất cả các cạnh đều

có nhãn là một từ trong S.

2. Các cạnh xuất phát từ cùng một nút có nhãn không trùng nhau.

3. Các nhãn cạnh trên đường đi P từ gốc đến nút lá l ghép lại thành một n-gram của S (n ≥ p), ký hiệu g(l).

Page 16: Xây dựng tag cloud bằng cây n-gram

17

Định nghĩa

4. Trên một đường đi P từ gốc đến nút lá l, tất cả các n-gram (n ≥ p) có thể tạo thành đều có số lần xuất hiện bằng nhau trong S. Nút lá l được gán nhãn là số lần xuất hiện đó, ký hiệu c(l).

Page 17: Xây dựng tag cloud bằng cây n-gram

18

Định nghĩa

5. Nút lá l có liên kết (l’, x) nếu g(l’) = xg(l) (x là một từ nào đó) và c(l’) = c(l). Khi đó l’ có một liên kết ngược đến l.

6. Với mọi p-gram g’ của S, có thể tìm được nút lá l sao cho g’ ∈ prefix(g(l)) và countS(g’) = c(l).

Cây n-gram cho:S = “a b c. a b c. c d.”p = 2

Page 18: Xây dựng tag cloud bằng cây n-gram

20

Ý nghĩa

1. Cho một p-gram g bất kỳ, hỏi nó xuất hiện bao nhiêu lần trong S tìm đường đi bắt đầu bằng g.

2. Liệt kê tất cả các p-gram của S duyệt tất cả các đường đi từ gốc có độ dài p.

3. Giải bài toán ban đầu duyệt tất cả các đường đi từ gốc đến lá mà nút lá không có liên kết xuôi.

Page 19: Xây dựng tag cloud bằng cây n-gram

21

1. Giới thiệu2. Phát biểu bài toán3. Cây n-gram4. Giải quyết bài toán bằng cây

n-gram5. Thực nghiệm6. Hướng phát triển

Page 20: Xây dựng tag cloud bằng cây n-gram

22

Giải thuật xây dựng câyXuất phát từ một cây T rỗng (chỉ có

nút gốc), thêm từng câu Si vào T.Thêm từng hậu tố Si,j theo thứ tự

ngượcGiả sử tiền tố dài nhất của Si,j có thể tìm thấy

trong cây có độ dài m◦m < p : thêm đoạn còn lại vào cây◦m ≥ p :

Kết thúc ở nút lá: tăng nhãn lên 1 Ngược lại: cắt nhánh

Page 21: Xây dựng tag cloud bằng cây n-gram

23

Thêm cạnh (1)Tại bước k, xâu Si,k đã

tồn tại trong câyTại bước j (j < k), xâu

Si,j được thêm vào câyTa chỉ thêm đoạn

Si[j..k+p-2] vì p-gram Si[k..k+p-1] đã tồn tại

Gọi b là vị trí cuối đoạn sau mỗi bước không thêm cạnh, gán b=j+p-2

+ “a c d”

Page 22: Xây dựng tag cloud bằng cây n-gram

24

Thêm cạnh (2)Nếu thao tác thêm

cạnh được thực hiện hai lần liên tiếp, các nút lá mới được liên kết

Gọi l là nút lá được tạo sau mỗi bước:◦ Sau một bước

không thêm cạnh, l = nil

Page 23: Xây dựng tag cloud bằng cây n-gram

25

Tăng nhãn (1)Nếu từ đầu tiên

của bước tiếp theo bằng nhãn liên kết

tăng nhãn của nút được liên kết

+ “a b c d”+ “a b c d”+ “a b c d”

Page 24: Xây dựng tag cloud bằng cây n-gram

26

Tăng nhãn (2)Nếu từ đầu tiên

của bước tiếp theo khác nhãn liên kết

cắt nhánh đi một cạnh

+ “c d”

Page 25: Xây dựng tag cloud bằng cây n-gram

27

Cắt nhánh (1)Nếu từ đầu tiên

của bước tiếp theo bằng nhãn của liên kết

Cắt nhánh một đoạn bằng đoạn vừa cắt, liên kết lại

+ “a b c”+ “a b c”

Page 26: Xây dựng tag cloud bằng cây n-gram

28

Cắt nhánh (2)Nếu từ đầu tiên

của bước tiếp theo khác nhãn của liên kết

Cắt nhánh chứa các nút lá được liên kết

Độ dài đoạn cắt sao cho phần còn lại không chứa p-gram đã có = |g(l)|-p+1

+ “b c”

Page 27: Xây dựng tag cloud bằng cây n-gram

34

1. Giới thiệu2. Phát biểu bài toán3. Cây n-gram4. Giải quyết bài toán bằng cây n-

gram5. Thực nghiệm6. Hướng phát triển

Page 28: Xây dựng tag cloud bằng cây n-gram

35

Các bước thực hiện

1. Loại bỏ mã HTML2. Tách từ3. Loại bỏ stop word4. Đếm n-gram5. Trích ra 10 cụm xuất hiện nhiều

nhất

Page 29: Xây dựng tag cloud bằng cây n-gram

36

Cài đặt

C#.NetTích hợp vào hệ

thống ePi ORM

Page 30: Xây dựng tag cloud bằng cây n-gram

37

Thời gian tính

0 1000 2000 3000 4000 5000 6000 7000 80000

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

Thời gian tính theo số từ (s)

Page 31: Xây dựng tag cloud bằng cây n-gram

38

1. Giới thiệu2. Phát biểu bài toán3. Cây n-gram4. Giải quyết bài toán bằng cây n-

gram5. Thực nghiệm6. Hướng phát triển

Page 32: Xây dựng tag cloud bằng cây n-gram

39

Hướng phát triểnNhận xét: từ độ sâu p trở đi cây

không phân nhánh gộp thành một nút để tăng tốc

Tìm ra các ứng dụng mới của cây n-gram