Tải bản đầy đủ (.pdf) (25 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.01 MB, 25 trang )

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
20173041
20175653

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

1

Hồng Thị Hảo
Nguyễn Đình Đức
Khuất Thị Quyên


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


PHÂN CƠNG CƠNG VIỆC

Nguyễn Đình Đức
Hồng Thị Hảo
Khuất Thị Qun


- Xử lý bộ dữ liệu.
- Viết báo cáo mục 1.
- 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à 4
- 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áo
cáo.


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ức
tạp. Một đứa trẻ mất 2 năm để có thể bắt đầu nhận thức cũng như suy
nghĩ về ngôn ngữ, vậy nếu muốn dạy cho máy tính hiểu ngơn ngữ thì ta
phả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óa
theo 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ận
thư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ảng
cá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áp
Word2Vec.
Không chỉ vậy, trong thời đại mà công nghệ thông tin đang ngày càng
phát triển cũng như sự bùng nổ của Internet đã mang đến một lượng
thô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ương
pháp tóm tắt tự động có nhiều ưu thế hơn cả là TextRank.

4


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ự đố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 Skipgram.

1.1.1. Mơ hình skip-gram
Cấu trúc của mơ hình skip-gram:

5


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

là số chiều của từ điển, một phần tử xk có giá trị 1 tương đương với
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 W (có số chiều
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à W′ (có số chiều là
NxV), hàm phát động của lớp output là softmax.
Mỗi hàng của W là vector N chiều đại diện cho vw là mỗi từ trong
lớp input. Mỗi hàng của W là . Lưu ý là input là một one-hot-vector
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 ui cho mỗi từ
trong từ điển.

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

Trong đó và là 2 vector đại diện cho từ w đến từ ma trận W và W′ .
Gradient descent được dùng để giải quyết bài tốn này nhưng vì từ
điển có kích thước lớn, tính tốn mẫu số phải tính trên tồn bộ từ điển
6


nên chi phí tính tố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
1.1.2. Cbow
Cbow thì ngược lại so với Skip-gram, có mơ hình như hình vẽ dưới đây:

1.1.3. Hierarchical softmax
Hierarchical softmax sử dụng cây nhị phân để biểu diễn tất cả các từ
trong từ điển. Mỗi từ là một lá trong cây. Với mỗi lá, tồn tại duy nhất một
đường từ gốc tới lá này, như thế đường này sẽ được sử dụng để ước lượng

xác suất mỗi từ biểu diễn bởi lá.

7


Thay vì phải đánh giá V nút output trong mạng nơron để có được
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ập
nhậ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à Pn(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ác
suất cho việc chọn từ ‘couch’ sẽ bằng với số lần từ ‘couch’ xuất hiện
trong 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,
min_alpha=0,00001, epoch=30
Trong đó:
min_count là số lần xuất hiện nhỏ nhất của các từ để nó được giữ lại
window là khoảng cách lớn nhất giữa từ hiện tại và từ đích trong một
câu

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 q
trình huấn luyện
epoch là số chu kì huấn luyện
8


Một số ví dụ minh họa về kết quả có thể có được sau q 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:

9


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ây
dựng sẵn.
Wikipedia Extractor1 là công cụ tạo một file văn bản đơn giản từ một
file 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: />
10


</doc>
Ví dụ minh họa kết quả:
Input:

<title>Armonium</title>
<id>2</id>
<timestamp>2008-06-22T21:48:55Z</timestamp>
<username>Nemo bis</username>
<comment>italiano</comment>
<text xml:space="preserve">[[Immagine:Harmonium2.jpg|thumb|
right|300 px]]
L''''armonium'''' (in francese, ''harmonium'') è uno [[strumenti
musicali|
strumento musicale]] azionato con una [[tastiera (musica)|tastiera]],
detta
manuale. Sono stati costruiti anche alcuni armonium con due
manuali.
==Armonium occidentale==
Come l'[[organo (musica)|organo]], l'armonium è utilizzato
tipicamente in
[[chiesa (architettura)|chiesa]], per l'esecuzione di [[musica sacra]],
ed è
fornito di pochi registri, quando addirittura in certi casi non ne

possiede
nemmeno uno: il suo [[timbro (musica)|timbro]] è molto meno ricco
di quello
organistico e così pure la sua estensione.
...
==Armonium indiano==
{{S sezione}}
== Voci correlate ==
*[[Musica]]
*[[Generi musicali]]</text>
</page>
Output:

11


<doc id="2" url=" />Armonium.
L'armonium (in francese, “harmonium”) è uno strumento musicale
azionato conuna tastiera, detta manuale. Sono stati costruiti anche
alcuni armonium con
due manuali.
Armonium occidentale.
Come l'organo, l'armonium è utilizzato tipicamente in chiesa, per
l'esecuzione
di musica sacra, ed è fornito di pochi registri, quando addirittura in
certicasi non ne possiede nemmeno uno: il suo timbro è molto meno
ricco di quello
organistico e così pure la sua estensione.
...
</doc>

Tuy nhiên, kết quả trả về trên chưa thể đưa vào huấn luyện. Chúng ta
cần thêm một số bước xử lý sau:
 Bỏ các tab <doc>
 Thay các dấu câu bằng khoảng trắng (trừ các dấu câu “.”, “?”, “!”)
 Bỏ các dấu xuống dòng
 Bỏ các chữ số

2. POS_TAG
Mỗi từ trong một ngơn ngữ nói chung có thể gắn với nhiều từ loại và
việc giải thích đúng nghĩa một từ phụ thuộc vào việc nó được xác định
đúng từ loại hay không. Công việc gán nhãn từ loại cho một văn bản là
xác định từ loại của mỗi từ trong phạm vi văn bản đó. Khi hệ thống văn
bản đã được gán nhãn, hay nói cách khác là đã được chú thích từ loại thì
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ói
cũ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ở.

12


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 được
loạ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ủa
cá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ãn
cho từ, Trong đó, các từ dự đốn gán nhãn và những từ trước đó đã được
gá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ào
gồ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ính
khơ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 tốn đã nhìn
qua.
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ẽ
được đưa về danh từ và được ký hiệu là:_noun.

13


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 động
với dữ liệu ngơn ngữ của con người.
2.1.2. Lemmatization
Trong Tiếng Anh một từ có thể có những hình dạng khác nhau, như
các từ chỉ quá khứ thì thêm _ed, các từ ở thời tiếp diễn thì có đuôi _ing
hay các từ bất quy tắc. Tuy cách biểu diễn khác nhau nhưng đều mang
một ý nghĩa, do vậy ta cần đưa các từ này về định dạng gốc của nó, nếu
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, tuy
nhiê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 StopWords
như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 Anh
nế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”,


14


“replacement”, “self”, “manage”, “self”, “govern”, “society”, “base”,
“voluntary”, “cooperative”, “institution”
2.1.4. Tách câu
Bước đầu tiên của quá trình là ta cần tách đoạn văn thành những câu
nhỏ thơng qua các kí tự kết thúc của câu ( dấu ‘.’,’!’,’?’…). Kết quả đầu
ra như sau:
1. “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. “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ấu
chấ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 trong
Tiếng Anh vì Tiếng Anh là ngôn ngữ đơn âm tiết nên chúng ta chỉ cần
tá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”

15


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ẽ được
tă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
từ, nếu không gán nhãn từ loại thì kích thước từ điển sau khi huấn luyện
là hơn 400 nghìn từ và sau khi gán nhãn là hơn 500 nghìn từ với cùng
tham 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âu
vă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 hồn tồn khác nhau, do đó nhúng
câ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ột
cặ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 và address_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ãn
gá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ừ
play
play_n
play_v

Kết quả các từ gần nhất
('playing'), ('played'), ('reprise'), ('player'), ('chorus'), ('sing'),
('soloist'), ('perform'), ('audition')
('othello_n'), ('skit_n'), ('shakespeare_n'), ('chorus_n'),
('ball_n'), ('aeschylus_n'), ('sophocles_n'), ('game_n'),
('player_n'), ('opera_n')
('playing_n'), ('playing_v'), ('played_a'), ('audition_v'),
('reprise_v'),
('perform_v'),
('sing_v'),
('played_n'),
('starring_a')

16


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ều
này làm cho các cụm từ như “take place”, “come true",... không thể giữ
lại tồ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 Word2Vec
cho các n-grams đó. Cụ thể chúng ta sẽ nhận biết bigrams, các n-grams
lớ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ặp
unigram trong câu. Ví dụ, với câu “I love playing with cats” sau khi
chuyển hoá ta được: “I_love love_playing playing_with with_cats”; các
bugrams 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ải
bigrams nào cũng có ý nghĩa (ví dụ như “playing_with”) và chúng ta
cũ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 ta
thưa hơn. Quay trở lại ví dụ ở trên, bigrams “playing_with" không thường
xuyên xuất hiện trong tập corpus của chúng ta, vì vậy sẽ khơng có nhiều
cá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àng
gần -1 thì bigrams đó càng khơng có ý nghĩa, ngược lại NPMI(x;y) càng
gần 1 thì khả năng hai từ x, y này tạo thành bigrams càng cao.


17


3.2. Chiết xuất bigrams từ corpus
Chúng ta sẽ chiết xuất bigrams từ corpus theo sơ đồ sau:

Sau khi đã có được tần suất xuất hiện của từng unigram và bigrams
có trong corpus, chúng ta sẽ tính NPMI của từng bigrams, bigrams nào có
NPMI cao hơn threshold (ngưỡng) thì sẽ được đưa vào từ điển bigrams.
Tiếp đó, chúng ta dùng từ điển bigrams vừa có được để tạo ra các
bigrams trong tập corpus.

3.3. Ví dụ minh hoạ
Chúng ta sẽ sử dụng class Phrases trong thư viện gensim để tạo các
bigrams như đã trình bày trong mục 3.1 và 3.2. Áp dụng cho đoạn văn
sau:
The Fulton County Grand Jury said Friday an investigation of Atlanta's
recent primary election produced "no evidence" that any irregularities
took place.
The jury further said in term-end presentments that the City Executive
Committee, which had over-all charge of the election, "deserves the
praise and thanks of the City of Atlanta" for the manner in which the
election was conducted.
The September-October term jury had been charged by Fulton Superior
Court Judge Durwood Pye to investigate reports of possible
"irregularities" in the hard-fought primary which was won by Mayornominate Ivan Allen Jr&.
"Only a relative handful of such reports was received", the jury said,
"considering the widespread interest in the election, the number of voters
and the size of this city".


18


The jury said it did find that many of Georgia's registration and election
laws "are outmoded or inadequate and often ambiguous".
It recommended that Fulton legislators act "to have these laws studied
and revised to the end of modernizing and improving them".
The grand jury commented on a number of other topics, among them the
Atlanta and Fulton County purchasing departments which it said "are
well operated and follow generally accepted practices which inure to the
best interest of both governments".
Sau khi lemmanize, loại bỏ stopword và punctuation như đã làm ở
mục 2, ta được các bigrams như sau:
- Với threshold bàng 0.79 ta có 37 bigrams:
fulton_county
friday_investigation
recent_primary
judge_durwood
pye_investigate
report_possible
irregularity_hard
fought_primary
win_mayor
modernizing_improve
comment_number
topic_among

purchasing_department
well_operate

produce_evidence
irregularity_take
end_presentment
executive_committee
deserve_praise
september_october
superior_court
follow_generally
accept_practice
inure_best
interest_government

nominate_ivan
relative_handful
report_receive
consider_widespread
number_voter
find_many
georgia_registration
law_outmode
inadequate_often
legislator_act
law_study
revise_end

- Với threshold bằng 0.89 ta có 28 bigrams:
friday_investigation
executive_committee
superior_court
hard_fought

relative_handful
find_many
often_ambiguous
modernizing_improve
well_operate
inure_best

produce_evidence
deserve_praise
judge_durwood
win_mayor
consider_widespread
georgia_registration
legislator_act
topic_among
follow_generally

take_place
september_october
pye_investigate
nominate_ivan
voter_size
outmode_inadequate
study_revise
purchasing_department
accept_practice

Nhìn kết quả trên, ta thấy rằng threshold càng lớn, số bigrams càng
ít. Tuy nhiên trong số các bigrams ở trên, số bigrams vô nghĩa chiếm một
số lượng không nhỏ. Nguyên nhân là do đoạn văn chúng ta sử sụng quá

19


nhỏ (chỉ có 85 từ riêng biệt), khơng đủ để học các bigrams có nghĩa. Để
khắc phục điều này, chúng ta phải tăng kích thước từ điển lên hàng triệu
từ để việc học trở nên tốt hơn, đồng thời có thể tăng threshold nhằm chỉ
lấy những bigrams thật sự có nghĩa và chấp nhận rủi ro rằng có khả năng
sẽ loại bỏ những bigrams có nghĩa nhưng ít xuất hiện.

3.4. Nhúng bigrams bằng Word2Vec
Tập dữ liệu được sử dụng trong phần này là dữ liệu [11].
- Tìm bigrams: Với min_cont = 1, threshold = 0.7, chúng ta thu
được 169.185 bigrams từ tập dữ liệu gồm 23.448.535 từ và
1.849.642 câu.
- Huấn luyện mơ hình Word2Vec – CBOW: các tham số truyền
vào min_count=1, window=5, size=300, sample=0.001,
alpha=0.01, min_alpha=0.00001, negative=5, epochs = 30. Tập
từ điển gồm 463841 từ.
- So sánh với nhúng unigram:
Khi nhúng unigram tên thành phố San Francisco bị tách ra làm
hai từ là “san” và “francisco”, các từ gần với hai từ này khi
được nhúng theo unigram là:
+ san : liriano, danconia, balagtas, reiguera, orellana, badiale,
ban-goy, labastida…
+ francisco: diego, jose, remo, jacinto, joaquin, mateo, sazae,
ildef-onso,…
Khi nhúng bigram, các từ gần với từ “san_francisco”:
los_angeles, san_diego, seattle, miami, chicago, oakland,
philadelphia, minneapolis, new_york, boston,…
Ta thấy rằng các từ như “los_angeles”, “san_diego” đều có

quan hệ về ngữ nghĩa rất quan trọng với từ “san_francisco”
nhưng lại bị bỏ qua khi nhúng unigram. Như vậy, việc nhúng
bigram đã giúp chúng ta giữ lại nghĩa của các bigrams.

20


4. TEXTRANK
Như đã giới thiệu trong phần mở đầu, TextRank là một thuật tốn
dùng để tìm ra các câu mang nội dụng chính của đoạn văn. TextRank sẽ
dùng vector nhúng của các từ trong câu để tính vector nhúng cho câu đó.
Trong phần này chúng ta sẽ áp dụng thuật tốn TextRank được
trình bày trong [2] để xây dựng đồ thị tích hợp cho các câu trong đoạn
văn.

4.1. Đơi nét về TextRank
Chúng ta sẽ tiến hành thực hiện thuật toán TextRank theo sơ đồ sau:

 Đầu tiên chúng ta sẽ thu thập tất cả các đoạn văn có trong bài
báo.
 Sau đó chia thành các câu riêng lẻ.
 Tính biểu diễn vector cho từng câu một. Ở bước này, chúng ta
sẽ nhúng các từ theo hai cách. Thứ nhất là nhúng theo từ loại
như đã được trình bày ở mục 2. Thứ hai là nhúng theo bigrams,
chúng ta sẽ không nhúng bigram như mục 3 mà thực hiện theo
tác giả tức ghép đôi một các cặp từ đứng kề nhau trong một câu
để tạo thành bigrams, các bigrams này sẽ được đưa vào nhúng
như là một từ đơn. Khi đã có nhúng của các từ, ta sẽ tính nhúng
của từng câu theo phương trình sau:


21


Trong đó:
Ewp(wpt)là vector biểu diễn của từ thứ t theo POS-TAG.
Ebi(bit) là vector biểu diễn theo bigram của bigram thứ t
trong câu.
T là số từ của câu.
 Tiếp đến ta sẽ tính độ tương tự Cosine của từng vector câu đôi
một theo từng loại nhúng như là một thước đo độ giống nhau
về ngữ nghĩa giữa cặp câu đó. Khi đấy, ta đã xây dựng xong hai
đồ thị vô hướng có trọng số cho các câu trong văn bản với các
câu được coi là nút, các cạnh là độ tương tự giữa các . Mỗi đồ
thị sẽ có một ma trận kề A = ( aij) với aij tính bằng độ tương tự
Cosine của câu thứ i và câu thứ j trong văn bản.
 Hai đồ thị ở trên sẽ được tích hợp với nhau để cho ra đồ thị
cuối cùng, điều này sẽ làm cho độ tin cậy cao hơn bởi chúng ta
lấy độ liên kết về ngữ nghĩa từ những nguồn khác nhau và độc
lập với nhau. Ma trận kề của đồ thị tích hợp này được tính theo
cơng thức sau:

Trong đó:
1 là ma trận có cùng kích thước với ma trận A i và các phần tử
của nó đều bằng 1.
Ai là ma trận kề thứ i
Phép nhân ∏i (1 − Ai) là phép nhân Hadamard
Các phần tử trong ma trận A này thường lớn hơn phần tử tương
ứng trong hai ma trận thành viên. Chúng ta sẽ kiểm nghiệm lại
đánh giá này trong phần xây dựng đồ thị.
 Cuối cùng, các nút trong đồ thị hay các câu sẽ được xếp hạng.

Tuỳ vào người sử dụng, sẽ chọn ra K câu có hạng cao nhất như
là những câu mang nội dung chính của văn bản.

22


4.2. Ví dụ minh hoạ
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 tốn TextRank. Đoạn văn này
gồm 11 câu. Sau khi tải 2 mô hình đã được huấn luyện trước đó, chúng ta
sẽ cho 2 mơ hình này học tiếp đoạn văn nhằm đạt được nhúng từ chính
xác hơn. Khi đó, ta được 3 ma trận kề cùng đồ thị tương ứng.

Hình 1 là đồ thị của nhúng bigrams,
hình 2 là đồ thị của nhúng từ kèm từ
loại, hình 3 là đồ thị tích hợp của hai
đồ thị trên. Để đồ thị dễ nhìn và thể
hiện được mối quan hệ giữa các câu,
chúng ta chỉ vẽ những cạnh có trọng
số lớn hơn 0.7. Có thể thấy rằng hai
đồ thị đầu tiên khá thưa, một số nút
khơng kết nối tới các nút cịn lại.
Nhưng sang đồ thị thứ ba, các nút đều
có liên kết với các nút còn lại, và trọng
số trên cách cạnh đều rất lớn và lớn
hơn trọng số của cạnh tương ứng trên
hai đồ thị kia. Như vậy, đánh giá được
nêu trong mục 4.1 là chính xác, đồ thị
tích hợp thường có trọng số lớn hơn

các đồ thị thành viên.

23

Hình 1. Bigram
Hình 2. POS_TAG Graph

Hình 3. iGraph


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

1. Bouma, G. (2009). Normalized ( Pointwise ) Mutual Information in
Collocation Extraction.
2. Yang, K.; Al-Sabahi, K.; Xiang, Y.; Zhang, Z. An Integrated Graph
Model for Document Summarization. Information 2018, 9, 232.
3. />4. />5. />6. />ng-text-before-use-rnn

TẬP DỮ LIỆU

Dữ liệu chúng ta sử dụng trong báo cáo này được lấy từ wikipedia

24


1. enwiki-20191101-pages-articles-multistream1.xml-p10p30302
với kích thước là 251.8MB.
2. Neo-Nazism – Wikiwand
/>
25



×