1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo môn PROJECT i đề tài tìm HIỂU về WORD2VEC và TEXTRANK

25 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 1,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đầu vào là one-hot-vector, mỗi từ sẽ có dạng {x 1 , x 2 ,…x v}trong đó Vlà số chiều của từ điển, một phần tử có giá trị 1 tương đương với x k chỉ mục của từ đó trong từ điển, các phần t

Trang 1

I HỌC BÁCH KHOA HÀ NỘI HOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

BÁO CÁO MÔN: PROJECT I

ĐỀ TÀI TÌM HIỂU VỀ WORD2VEC VÀ TEXTRANK

GVHD: PGS.TS Nguyễn Thị Kim Anh

Sinh viên thực hiện: 20173100 Hoàng Thị Hảo

20173041 Nguyễn Đình Đức

20175653 Khuất Thị Quyên

Hà Nội, tháng 12 năm 2019

Trang 2

MỤC LỤC

PHÂN CÔNG CÔNG VIỆC 3

LỜI MỞ ĐẦU 4

1 WORD2VEC 5

1.1 Khái quát nội dung Word2Vec 5

1.1.1 Mô hình skip-gram 5

1.1.2 Cbow 7

1.1.3 Hierarchical softmax 7

1.1.4 Negative Sampling 8

1.1.5 Minh họa kết quả 8

1.2 Tiền xử lý dữ liệu 10

2 POS_TAG 12

2.1 Các bước cơ bản trong gãn nhãn từ loại: 13

2.1.1 Gán nhãn từ loại cho mỗi từ -POS 13

2.1.2 Lemmatization 14

2.1.3 Loại bỏ StopWords 14

2.1.4 Tách câu 15

2.1.5 Tách từ 15

2.2 Kết quả sau khi gán nhãn 16

3 BIGRAMS 17

3.1 Nhận biết bigrams 17

3.2 Chiết xuất bigrams từ corpus 18

3.3 Ví dụ minh hoạ 18

3.4 Nhúng bigrams bằng Word2Vec 20

4 TEXTRANK 21

4.1 Đôi nét về TextRank 21

4.2 Ví dụ minh hoạ 23

DANH MỤC TÀI LIỆU THAM KHẢO 24

TẬP DỮ LIỆU 25

Trang 3

PHÂN CÔNG CÔNG VIỆC

Nguyễn Đình Đức - Xử lý bộ dữ liệu

- Viết báo cáo mục 1

Hoàng Thị Hảo - Nhúng bigrams, xây dựng pha đầu tiên của

thuật toán TextRank

- Viết báo cáo mục 3 và 4Khuất Thị Quyên - Nhúng POS_TAG, xử lý dữ liệu

- Viết báo cáo mục 2 và lời mở đầu, ghép báocáo

Trang 4

LỜI MỞ ĐẦU

Một trong những cái quan trọng khiến con người phát triển vượt bậc

so với các loài động vật khác là ngôn ngữ Do đó, ngôn ngữ cực kỳ phứctạp Một đứa trẻ mất 2 năm để có thể bắt đầu nhận thức cũng như suynghĩ về ngôn ngữ, vậy nếu muốn dạy cho máy tính hiểu ngôn ngữ thì taphải làm gì?

Như chúng ta đã biết chiếc máy tính được cấu tạo từ những con số do đó

nó cũng chỉ có thể đọc các dữ liệu số mà thôi Trước đây, người ta mã hóatheo kiểu one hot encoding tức là tạo một bộ từ điển cho dữ liệu và mãhóa các từ trong văn bản thành những vector, nếu từ đó có trong văn bản

đó thì mã hóa là 1 còn không có sẽ là 0 Kết quả tạo ra là một ma trậnthưa, tức là ma trận hầu hết là 0 Các mã hóa này có nhiều nhược điểm,

đó là: thứ nhất là số chiều của nó rất lớn, thứ hai các từ không có quan hệvới nhau Điều đó dẫn đến người ta nghĩ ra một mô hình mới có tên

là Word embebding, các từ sẽ có quan hệ với nhau về ngữ nghĩa, tức làcác cặp từ như: “paris-tokyo”, “man-women”, “boy-girl” sẽ có khoảngcách gần nhau hơn trong Word embebding space, ưu điểm thứ hai là sốchiều của nó sẽ giảm Word embebding có hai mô hình nổi tiếng làWord2Vec và GloVe Nhìn chung hai phương pháp này đều có những ưu

và nhược điểm riêng, ở báo cáo này chúng ta sẽ tìm hiểu về phương phápWord2Vec

Không chỉ vậy, trong thời đại mà công nghệ thông tin đang ngày càngphát triển cũng như sự bùng nổ của Internet đã mang đến một lượngthông tin vô cùng lớn cho con người Vì vậy, nhu cầu của con người vềtóm tắt thông tin nhằm thuận tiện cho việc tổng hợp càng cao Tóm tắt dữliệu tự động trở thành một lĩnh vực quan trọng, một trong những phươngpháp tóm tắt tự động có nhiều ưu thế hơn cả là TextRank

Trang 5

1 WORD2VEC

1.1 Khái quát nội dung Word2Vec

Word2Vec được tạo ra năm 2013 bởi Tomas Mikolov, là một mô hình của Từ Embedding Trong đó, các từ sẽ được chuyển về dạng vector để

xử lý Word2Vec có 2 mô hình là Cbow (Continous bag of words) và Skip-gram

Cbow là mô hình dự đoán từ đích dựa vào những từ xung quanh

Skip-gram ngược lại với Cbow, dự đoán những từ xung quanh dựa vào một từ cho trước

Cbow huấn luyện nhanh hơn nhưng không chính xác bằng gram

Skip-1.1.1 Mô hình skip-gram

Cấu trúc của mô hình skip-gram:

Trang 6

Đầu vào là one-hot-vector, mỗi từ sẽ có dạng {x 1 , x 2 ,…x v}trong đó V

là số chiều của từ điển, một phần tử có giá trị 1 tương đương với x k

chỉ mục của từ đó trong từ điển, các phần tử còn lại sẽ là 0,

Ma trận trọng số giữa lớp input và lớp ẩn là ma trận (có số chiều W

VxN, trong đó N là số chiều của lớp ẩn) có hàm phát động là tuyến

tính, ma trận trọng số giữa lớp ẩn và lớp output là ′ (có số chiều làW

NxV), hàm phát động của lớp output là softmax.

Mỗi hàng của là vector chiều đại diện cho là mỗi từ trong W N v w

lớp input Mỗi hàng của là Lưu ý là input là một one-hot-vectorW

chỉ có một phần tử bằng 1 nên

 Từ lớp ẩn đến lớp output là ma trận Ta tính score cho mỗi từ u i

trong từ điển

Trong đó là vector cột trong ′ Tiếp đó ta sử dụng hàm softmax.j W

Trong đó và là 2 vector đại diện cho từ đến từ ma trận và ′ w W W

Gradient descent được dùng để giải quyết bài toán này nhưng vì từ điển có kích thước lớn, tính toán mẫu số phải tính trên toàn bộ từ điển

Trang 7

nên chi phí tính toán lớn Do đó người ta dùng 2 phương pháp giải quyết

là Hierarchical Softmax hoặc Negative Sampling

Trang 8

Thay vì phải đánh giá nút output trong mạng nơron để có được V

phân phối xác suất, ta chỉ cần đánh giá từ

1.1.4 Negative Sampling

Ý tưởng của negative sampling rõ ràng hơn hierarchial softmax: đểgiải quyết khó khăn của việc có quá nhiều output vector mà cần được cậpnhật trên một vòng lặp, chúng ta chỉ cần cập nhật một mẫu của chúng

Rõ ràng từ output nên được giữ trong mẫu (sample) của chúng ta vàđược cập nhật, và chúng ta cần lấy mẫu một vài từ như là mẫu âm(negative sampling) Một phân bố xác suất cần cho việc lấy mẫu(sampling process), và nó có thể được chọn tuỳ tiện, ta gọi phân bố này làphân bố nhiễu (nosie distribution), và ký hiệu là P n (w)

Ví dụ, giả sử bạn có tập văn như là một danh sách từ, và bạn chọn 5

từ âm bằng cách lấy ngẫu nhiên từ danh sách Trong trường hợp này, xácsuất cho việc chọn từ ‘couch’ sẽ bằng với số lần từ ‘couch’ xuất hiệntrong tập văn chia cho tổng số từ xuất hiện trong tập văn đó

1.1.5 Minh họa kết quả

Chúng ta sử dụng thư viện gensim để huấn luyện dữ liệu với tập dữ liệu [1]

Cụ thể, trong mục này quá trình huấn luyện sử dụng Cbow với

min_count = 1, window=5, size=200, sample=0,001, alpha=0,01,

size là số chiều của vector từ

sample: các từ có tần suất cao hơn sample sẽ được ghép ngẫu nhiên

alpha là tốc độ học ban đầu

min_alpha: tốc độ học sẽ giảm tuyến tính xuống min_alpha trong quátrình huấn luyện

epoch là số chu kì huấn luyện

Trang 9

Một số ví dụ minh họa về kết quả có thể có được sau quá trình huấn luyện:

So sánh sự tương đồng về nghĩa của các từ:

Tính khoảng cách giữa 2 từ:

Biểu diễn trực quan khoảng cách về nghĩa giữa các từ trên đồ thị 2 chiều:

Trang 10

1.2 Tiền xử lý dữ liệu

Tập dữ liệu [1] chúng ta sử dụng trong báo cáo này là dữ liệu thô, chưa được xử lý Do đó, cần phải tiền xử lý dữ liệu Để làm điều đó, chúng ta sử dụng Wikipedia Extractor – một công cụ được Wikipedia xâydựng sẵn

Wikipedia Extractor là công cụ tạo một file văn bản đơn giản từ một 1file Wikipedia dump, loại bỏ bất kì thông tin, chú thích nào khác có trong các trang Wikipedia, chẳng hạn như hình ảnh, bảng, tài liệu tham khảo, danh sách

Nội dung dữ liệu đầu ra sẽ có dạng:

<doc id="" revid="" url="" title="">

Nội dung của trang wikipedia

1 Link github: https://github.com/attardi/wikiextractor

Trang 12

<doc id="2" url="http://it.wikipedia.org/wiki/Armonium">

Armonium

L'armonium (in francese, “harmonium”) è uno strumento musicale azionato conuna tastiera, detta manuale Sono stati costruiti anche alcuni armonium con

organistico e così pure la sua estensione

nó sẽ được ứng dụng rộng rãi trong các hệ thống tìm kiếm thông tin,trong các ứng dụng tổng hợp tiếng nói, các hệ thống nhận dạng tiếng nóicũng như trong các hệ thống dịch máy Trong xử lý ngôn ngữ tự nhiên thìgán nhãn từ loại được coi là cơ sở

Trang 13

2.1 Các bước cơ bản trong gãn nhãn từ loại:

Ví dụ ta có đoạn văn ngắn sau:

Anarchism is an anti authoritarian political and social philosophy that rejects hierarchies deemed unjust and advocates their replacement with self managed self governed societies based on voluntary cooperative institutions These institutions are often described as stateless societies although several authors have defined them more specifically as distinct institutions based on non hierarchical or free associations.

2.1.1 Gán nhãn từ loại cho mỗi từ -POS

Ở bước này ta cần xem xét từng từ một và gãn nhãn cho từ, ở đây thìchúng ta chỉ gán nhãn đơn giản nhất cho các từ là: danh từ, động từ, tính

từ và trạng từ, đối với những từ không nằm trong cả 4 loại hay các từ nhưtên địa danh hay tên người sẽ đều được về danh từ Việc xác định đượcloại từ của mỗi từ trong câu sẽ giúp ta có thể hiểu rõ hơn về ý nghĩa củacác câu, để làm được điều này thì cần xây dựng một mô hình gán nhãncho từ, Trong đó, các từ dự đoán gán nhãn và những từ trước đó đã đượcgán nhãn sẽ được đưa vào làm thuộc tính cho mô hình

Quy trình gán nhãn từ như sau ( ví dụ ta có từ London):

Mô hình gán nhãn được huấn luyện bằng cách cung cấp dữ liệu đầu vàogồm những câu Tiếng Anh với mỗi từ đã được gán nhãn trước đó

Mô hình này được thực hiện dựa trên phương pháp thống kê, vì máy tínhkhông thể hiểu được ý nghĩa chính xác nhất như con người, mô hình chỉ

có thể xác định được nhãn giống với những từ trước đó thuật toán đã nhìnqua

Trong bài này, nếu từ là danh từ (Noun) sẽ được gán nhãn ký hiệu là:_n,động từ (Verb) là:_v, tính từ (adj) là: _j và trạng từ (adv):_r, đối với các từchỉ địa danh hay tên người hoặc các từ không nằm trong 4 từ loại trên sẽ

Trang 14

Sau khi chạy câu văn ở ví dụ trên chúng ta sẽ có kết quả sau:

anarchism_n anti_a authoritarian_a political_a social_a philosophy_n reject_v hierarchy_n deem_v unjust_a advocate_v replacement_n self_n manage_v self_n govern_v society_n base_v voluntary_a cooperative_a institution_n institution_n often_r describe_v stateless_a society_n although_None several_a author_n define_v specifically_r distinct_a institution_n base_v non_a hierarchical_a free_a association_n

Ở mô hình này được sử dụng công cụ NLTK (Natural Language Toolkit)đây là công cụ hàng đầu để xây dựng các chương trình Python hoạt độngvới dữ liệu ngôn ngữ của con người

không máy tính sẽ hiểu các từ này là 2 từ khác nhau (Ví dụ: “going”,

“goes”, ”went”, “gone” các từ này sẽ được đưa về từ ban đầu là “go”).

Trong NLP thì quá trình này được gọi là Lemmetization

Điều này tương tự với động từ, ta cũng sẽ chuyển đổi các dạng động

từ thành định dạng gốc Do vậy ta có thể viết: “I going to school” thành

“I go to school” Đối với các từ bất quy tắc ta sẽ có 1 danh sách riêng

chứa các từ bất quy tắc này để khi văn bản xuất hiện từ bất quy tắc nó sẽđưa về từ gốc của từ

2.1.3 Loại bỏ StopWords

StopWords là những từ xuất hiện nhiều trong ngôn ngữ tự nhiên, tuynhiên lại không mang nhiều ý nghĩa ở trong đoạn văn, trong tiếng Anh lànhững từ như: is, that, this,… có nhiều cách để loại bỏ các StopWordsnhưng có 2 cách chính là: dùng từ điển và dựa theo tần suất xuất hiện của

từ Trong 2 cách này có thể thấy biệc sử dụng từ điển có nhiều ưu thế hơn

cả, nên trong project này chúng em sử dụng cách loại bỏ StopWords làdùng từ điển bằng cách liệt kê hết tất cả các StopWords trong Tiếng Anhnếu xuất hiện trong văn bản sẽ bị loại bỏ

Ví dụ ở trên sau khi tách từ ta sẽ tiến hành loại bỏ các StopWords ta

sẽ có Output sau:

“anarchism”, “anti”, “authoritarian”, “political”, “social”,

“philosophy”, “ reject”, “hierarchy”, “deem”, “unjust”, “advocate”,

Trang 15

“replacement”, “self”, “manage”, “self”, “govern”, “society”, “base”,

“voluntary”, “cooperative”, “institution”

2 “These institutions are often described as stateless societies although several authors have defined them more specifically as distinct institutions based on non hierarchical or free associations”

Giả định rằng mỗi câu ở trên có một ý nghĩa riêng biệt Vì chúng có

có thể dễ dàng viết chương trình để hiểu một câu hơn là một đoạn văn.Xây dựng chương trình tách câu rất đơn giản Cứ khi nào ta thấy dấuchấm câu, khi đó một câu được coi là kết thúc

2.1.5 Tách từ

Sau khi tách ra thành các câu riêng thì ta cần tách các từ bên trong câu

ra, giai đoạn này còn gọi là Tokenization Việc này rất đơn giản trongTiếng Anh vì Tiếng Anh là ngôn ngữ đơn âm tiết nên chúng ta chỉ cầntách từ mỗi khi gặp khoảng trống chứ không giống như tiếng Việt sẽ khókhăn hơn rất nhiều vì nó là ngôn ngữ đa âm tiết

Ví dụ trong tách từ:

1 Input: Anarchism is an anti authoritarian political and social philosophy that rejects hierarchies deemed unjust and advocates their replacement with self managed self governed societies based on voluntary cooperative institutions.

2 Output: ” Anarchism”, “is”, “an”, “anti”, “authoritarian”,

“political”, “and”, “social”, “philosophy”, “that”, “rejects”,

“hierarchies”, “deemed”, “unjust”, “and”, “advocates”, “their”,

“replacement”, “with”, “self”, “managed”, “self”, “governed”,

“societies”, “based”, “on”, “voluntary”, “cooperative”, “institutions”

Trang 16

2.2 Kết quả sau khi gán nhãn

Sau khi gán nhãn từ loại, dễ thấy kích thước của bộ từ điển sẽ đượctăng lên Cụ thể với số lượng từ trước khi được huấn luyện là trên 23 triệu

là hơn 400 nghìn từ và sau khi gán nhãn là hơn 500 nghìn từ với cùngtham số cài đặt như nhau

Kích thước từ điển tăng sau khi huấn luyện nếu gán nhãn từ loại làdo: Trong một câu văn, ở ngữ cảnh này nó là từ loại này nhưng ở một câuvăn khác vẫn là từ đó nhưng nó sẽ đóng vai trò là từ loại khác

Ví dụ như ta có câu văn sau:

(a) Please write your address on an envelope

(b) Now, I am hosting a summit with President Xi of China at the Southern White House to address the many critical issues affecting our.

Trong tường hợp không gán nhãn cho từ các từ đa nghĩa sẽ được coi

là cùng một từ dù chúng có ý nghĩa hoàn toàn khác nhau, do đó nhúngcâu điển hình sẽ không xử lý được vấn đề đa năng việc gán nhãn cho từ

sẽ thực hiện được điều này: mỗi từ sẽ được gắn nhãn loại từ tạo nên mộtcặp từ khi lưu trong từ điển

Trong câu (a), “address” là danh từ tuy nhiên ở câu (b) thì “address”

là động từ, do vậy lúc này bên trong từ điển sẽ được lưu với hai cặp từ là:

address_n address_v và còn nếu không gán nhãn cho từ thì trong từ điển

sẽ chỉ lưu là address Kích thước từ điển sẽ càng lớn nếu số lượng nhãngán cho từ càng nhiều, tuy nhiên ở đây chúng ta chỉ gán nhãn năm loại là:danh từ (_n), động từ (_v), tính từ (_j) và trạng từ (_r) còn các từ loại

khác đều sẽ được đưa về nhãn danh từ (_None).

Từ Kết quả các từ gần nhất

play ('playing'), ('played'), ('reprise'), ('player'), ('chorus'), ('sing'),

('soloist'), ('perform'), ('audition')

play_n ('othello_n'), ('skit_n'), ('shakespeare_n'), ('chorus_n'),

('ball_n'), ('aeschylus_n'), ('sophocles_n'), ('game_n'),('player_n'), ('opera_n')

play_v ('playing_n'), ('playing_v'), ('played_a'), ('audition_v'),

('reprise_v'), ('perform_v'), ('sing_v'), ('played_n'),('starring_a')

Trang 17

3 BIGRAMS

Một trong những hạn chế của thuật toán Word2Vec trong mục 1 làchúng ta chỉ có thể nhúng được cho từng từ hay còn gọi là unigram Điềunày làm cho các cụm từ như “take place”, “come true", không thể giữlại toàn vẹn ý nghĩa của mình khi được đưa vào nhúng Vì vậy, phần này

sẽ trình bày về cách nhận biết n-grams để áp dụng thuật toán Word2Veccho các n-grams đó Cụ thể chúng ta sẽ nhận biết bigrams, các n-gramslớn hơn có thể được nhận biết tương tự như bigrams

3.1 Nhận biết bigrams

Chúng ta có thể tạo bigrams đơn giản bằng cách ghép từng cặpunigram trong câu Ví dụ, với câu “I love playing with cats” sau khichuyển hoá ta được: “I_love love_playing playing_with with_cats”; cácbugrams này sẽ được đưa vào Word2Vec để học như unigram Tuy nhiên,lại có một số rắc rối với việc nhúng các bigrams này

Thứ nhất, chúng ta sẽ chỉ nhúng cho bigrams, nhưng không phảibigrams nào cũng có ý nghĩa (ví dụ như “playing_with”) và chúng tacũng không thể nhúng cho các unigram như “love”

Thứ hai, nhúng cho bigrams sẽ làm cho tập corpus của chúng tathưa hơn Quay trở lại ví dụ ở trên, bigrams “playing_with" không thườngxuyên xuất hiện trong tập corpus của chúng ta, vì vậy sẽ không có nhiềucác từ ngữ cảnh để học nhúng cho bigrams này

Để giải quyết vấn đề này, chúng ta sẽ sử dụng Normalized Pointwise Mutual Information (NPMI)1 như là một phép đo xem

bigrams này có nghĩa hay không

Trong đó: x là từ đầu tiên trong bigrams

y là từ thứ hai trong bigrams

p(a) = count(a) / count(total)

NPMI(x;y) có giá trị trong khoảng từ -1 đến 1 Giá trị NPMI(x;y) cànggần -1 thì bigrams đó càng không có ý nghĩa, ngược lại NPMI(x;y) cànggần 1 thì khả năng hai từ x, y này tạo thành bigrams càng cao

Ngày đăng: 24/04/2022, 21:54

HÌNH ẢNH LIÊN QUAN

Word2Vec được tạo ra năm 2013 bởi Tomas Mikolov, là một mô hình của Từ Embedding. Trong đó, các từ sẽ được chuyển về dạng vector để  xử lý - BÁO cáo môn PROJECT i đề tài tìm HIỂU về WORD2VEC và TEXTRANK
ord2 Vec được tạo ra năm 2013 bởi Tomas Mikolov, là một mô hình của Từ Embedding. Trong đó, các từ sẽ được chuyển về dạng vector để xử lý (Trang 5)
Cbow thì ngược lại so với Skip-gram, có mô hình như hình vẽ dưới đây: - BÁO cáo môn PROJECT i đề tài tìm HIỂU về WORD2VEC và TEXTRANK
bow thì ngược lại so với Skip-gram, có mô hình như hình vẽ dưới đây: (Trang 7)
Mô hình gán nhãn được huấn luyện bằng cách cung cấp dữ liệu đầu vào gồm những câu Tiếng Anh với mỗi từ đã được gán nhãn trước đó. - BÁO cáo môn PROJECT i đề tài tìm HIỂU về WORD2VEC và TEXTRANK
h ình gán nhãn được huấn luyện bằng cách cung cấp dữ liệu đầu vào gồm những câu Tiếng Anh với mỗi từ đã được gán nhãn trước đó (Trang 13)
Chúng ta sẽ sử dụng tập dữ liệu [1] để huấn luyện 2 mô hình Word2Vec, hai mục Introduction và  Definition  của tập dữ liệu [2] cho phần biểu diễn đồ thị tích hợp của thuật toán TextRank - BÁO cáo môn PROJECT i đề tài tìm HIỂU về WORD2VEC và TEXTRANK
h úng ta sẽ sử dụng tập dữ liệu [1] để huấn luyện 2 mô hình Word2Vec, hai mục Introduction và Definition của tập dữ liệu [2] cho phần biểu diễn đồ thị tích hợp của thuật toán TextRank (Trang 23)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w