Tải bản đầy đủ (.docx) (61 trang)

Đồ án tốt nghiệp XÂY DỰNG ỨNG DỤNG TRÍCH rút THỜI GIAN, địa điểm từ dữ LIỆU TIN NHẮN

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 (2.02 MB, 61 trang )

1

HỌ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 ỨNG DỤNG TRÍCH RÚT THỜI GIAN, ĐỊA
ĐIỂM TỪ DỮ LIỆU TIN NHẮN

Giảng viên hướng dẫn
Sinh viên thực hiện
Lớp
Khóa
Hệ

: PGS.TS TỪ MINH PHƯƠNG
: PHẠM VIỆT ANH
: D11CNPM1
: 2011-2016
: ĐẠI HỌC CHÍNH QUY

Hà Nội, tháng 11/2015


2

LỜI CẢM ƠN
Để có thể hoàn thành được đồ án này, em xin chân thành cảm ơn các thầy cô


trong khoa Công nghệ thông tin – Học viện Công nghệ Bưu chính Viễn thông đã ân
cần dạy dỗ em trong suốt bốn năm học vừa qua.
Em xin gửi lời cảm ơn chân thành nhất tới thầy Từ Minh Phương, người đã trực
tiếp hướng dẫn và chỉ bảo tận tình em trong quá trình làm đồ án này.
Cuối cùng, em xin cảm ơn gia đình em, bạn bè em, những người đã luôn ở bên
cạnh, quan tâm, giúp đỡ, động viên em để em có thể hoàn thành được đồ án này.

Em xin chân thành cảm ơn!

Sinh viên
Phạm Việt Anh


3

MỤC LỤC


4

DANH MỤC CÁC HÌNH VẼ


5

DANH MỤC CÁC BẢNG


6


KÝ HIỆU VÀ CÁC CỤM TỪ VIẾT TẮT
Ký hiệu
IE
NLP
NER
R
P
SVM
POS

Diễn giải
Information Extraction
Natural Language Processing
Named Enitity Recognization
Recall
Precision
Support Vector Machine
Part Of Speech


7

LỜI MỞ ĐẦU
Theo xu hướng phát triển của xã hội ngày nay, sự phát triển của công nghệ
thông tin là vô cùng mạnh mẽ và nhanh chóng. Tuy nhiên vấn đề đặt ra là làm thế nào
để máy tính có thể “hiểu” và xử lý một cách tự động. Các thiết bị thông minh ngày
càng phát triển, đặc biệt là điện thoại cá nhân được tích hợp nhiều tiện ích và chức
năng, dần thay thế các thế các thiết bị khác và trở thành một thiết bị quan trọng trong
cuộc sống thường ngày. Kéo theo là nhu cầu sử dụng của con người ngày một tăng,
các yêu cầu về tiện ích ngày càng lớn, điện thoại thông minh ra đời. Hàng loạt các ứng

dụng, tiện ích được tạo ra nhằm phục vụ cho đời sống, công việc, giải trí...Việc trao
đổi thông tin qua tin nhắn điện thoại và trích lọc thông tin từ những tin nhắn đó vẫn
hoàn toàn thủ công.
Với mong muốn tăng cường tiện ích, tạo ra các ứng dụng thông minh, có thể
thay thế các thao tác thủ công của con người mà vẫn đảm bảo độ chính xác cao và hiệu
quả, em quyết định thực hiện đề tài “Xây dựng ứng dụng trích rút thời gian, địa điểm
từ dữ liệu tin nhắn”. Bởi đề tài rất thực tế, phù hợp với nhu cầu hiện nay.
Mục đích của đề tài là nghiên cứu về lĩnh vực trích rút thông tin và áp dụng
kiến thức để xây dựng một ứng dụng có thể “đọc hiểu” tin nhắn của người dùng, trích
rút thông tin về thời gian và địa điểm một cách chính xác và hiệu quả.
Đồ án có cấu trúc gồm 4 chương với nội dung như sau:
Chương 1: Tổng quát về trích rút thông tin
Chương này cung cấp cho người đọc những hiểu biết cơ bản về bài toán trích
rút thông tin nói chung, các hướng tiếp cận, phương pháp trích rút, những nguồn dữ
liệu, thư viện hỗ trợ, những khó khăn thường gặp và một số ứng dụng của trích rút
thông tin.
Chương 2: Một số phương pháp sử dụng trong bài toán trích rút thông tin
Giới thiệu về bài toán trích rút thông tin thời gian, địa điểm từ dữ liệu tin nhắn,
các kỹ thuật để giải quyết. Ngoài ra chương này có đề cập tới Trường ngẫu nhiên có
điều kiện CRF, máy vectơ hỗ trợ SVM. Cách sử dụng các công cụ CRF++, LibSVM...
Chương 3: Xây dựng hệ thống và thực nghiệm
Chương này nói về quá trình thu thập, xây dựng dữ liệu huấn luyện, các thao
tác kiểm nghiệm, kết quả và đánh giá khả năng trích rút thông qua độ tin cậy (R -


8

Recall), độ chính xác (P - Precision), độ đo F-measure và ứng dụng áp dụng kết quả
trích rút.
Chương 4: Kết luận và hướng phát triển

Tổng kết bài toán, kết quả đạt được và còn chưa đạt được. Từ đó đề xuất mục
tiêu hướng tới và hướng phát triển trong tương lai.


9

CHƯƠNG 1: BÀI TOÁN TRÍCH RÚT THỜI GIAN, ĐỊA
ĐIỂM TỪ DỮ LIỆU TIN NHẮN VÀ TỔNG QUÁT VỀ
TRÍCH RÚT THÔNG TIN
Chương này sẽ giới thiệu một cách tổng quan về bài toán trích rút thông tin, bao
gồm các định nghĩa, hướng tiếp cận, một vài khó khăn thường gặp của bài toán. Đồng
thời cũng trình bày sơ lược về một vài thư viện, ứng dụng đã được phát triển cho bài
toán trích rút thời gian, địa điểm.
1.1. Bài toán trích rút thời gian, địa điểm từ dữ liệu tin nhắn
Ngày nay, ta có thể bắt gặp vô số những ứng dụng, tính năng thông minh, tiện
ích và hữu dụng trên những sản phẩm công nghệ cao, tiêu biểu là những dòng điện
thoại di động thông minh, trong đó, những sản phẩm và ứng dụng của Apple luôn
được biết đến và nhận được sự tín nhiệm cao từ phần lớn người dùng vì những tiện ích
và trải nghiệm tuyệt vời mà nó mang lại. Trong đó, tính năng nhận diện thông tin trong
văn bản là một trong những điểm cộng nhận được nhiều phản hồi tích cực từ phía
người dùng:

Hình 1.1. Người dùng touch vào dòng “lúc
18h10”

Hình 1.2. Người
“19001886”

dùng


touch

vào


10

Tính năng nhận diện thông tin trên iPhone dựa vào những định dạng phổ biến
của thời gian (hình 1.1) và số điện thoại (hình 1.2) để nhận dạng và đưa ra gợi ý hành
động đối với từng loại thông tin mà thiết bị nhận dạng được.
Dựa trên ý tưởng và tính ứng dụng cao của tính năng trên, qua cân nhắc, em đã
lựa chọn thực hiện đề tài “Trích rút thời gian, địa điểm từ dữ liệu tin nhắn”. Mục đích
của đề tài là thông qua việc trích rút thời gian và địa điểm, xây dựng một ứng dụng
thông minh, có thể “đọc hiểu” tin nhắn người dùng và tự động đặt lịch hẹn trên thiết bị
một cách chính xác và hiệu quả.
Hệ thống được xây dựng dựa trên dữ liệu tin nhắn và thông tin trích rút được,
do đó, hệ thống gồm 2 phần xử lý chính:
• Nhận dạng hội thoại: nhận dạng hội thoại gần nhất trong toàn bộ lịch sử tin nhắn
giữa 2 người.
- Đầu vào: Lịch sử tin nhắn giữa 2 người
- Đầu ra: Hội thoại gần nhất giữa 2 người
• Trích rút thời gian, địa điểm: trích rút thông tin thời gian, địa điểm trong hội thoại
gần nhất.
- Đầu vào: Hội thoại gần nhất giữa 2 người
- Đầu ra: Thời gian, địa điểm trích rút được

Hình 1.3. Biểu đồ mô tả hệ thống trích rút thời gian, địa điểm từ dữ liệu tin nhắn

Bài toán trích rút thời gian, địa điểm là một trong những trường hợp riêng của
bài toán trích rút thông tin thông thường và ta sẽ làm rõ bài toán ở chương 2. Trước

tiên, ta cần nắm được những kiến thức cơ bản của trích rút thông tin nói chung, các
khái niệm, các phương pháp trích rút phổ biến, cũng như những ứng dụng thực tiễn mà
bài toán trích rút thông tin đã được nghiên cứu và đưa vào sử dụng hiện nay.
1.2. Giới thiệu về trích rút thông tin
Nhận dạng, tìm kiếm thông tin từ những văn bản phi cấu trúc là một công việc
khó, đã thách thức giới nghiên cứu từ hơn 20 năm nay. Bắt nguồn từ vấn đề Xử lý
ngôn ngữ tự nhiên (NLP), ngày nay vấn đề này đã được phát triển theo nhiều nhánh
khác nhau như học máy, trích rút thông tin, cơ sở dữ liệu, web và phân tích tài liệu.
Một vài định nghĩa về trích rút thông tin được sử dụng phổ biến trên internet:


11










Theo Line Eikvil [1]: IE là lĩnh vực nghiên cứu hẹp của xử lý ngôn ngữ
tự nhiên và xuất phát từ việc xác định những thông tin cụ thể từ một tài
liệu ngôn ngữ tự nhiên. Mục đích chính của trích rút thông tin là chuyển
văn bản tự nhiên về dạng văn bản có cấu trúc. Thông tin được trích rút từ
những nguồn tài liệu khác nhau và được biểu diễn dưới một hình thức
thông nhất. Những hệ thống trích rút thông tin văn bản không nhằm để
hiểu văn bản đưa vào, mà để tìm kiếm các thông tin cần thiết liên quan
mà chúng ta mong muốn được tìm thấy.

Cũng theo Line Eikvil [1], thành phần cốt lõi của các hệ thống trích rút
thông tin là tập hợp các luật, các mẫu dùng để xác định đặc điểm của
thông tin cần trích rút.
Theo Jim Cowie và Yorick Wilks [2]: IE là tên được đặt cho quá trình
cấu trúc và kết hợp một cách có chọn lọc dữ liệu được tìm thấy, được
phát biểu rõ ràng trong một hay nhiều tài liệu văn bản.
Theo Tiến sĩ Alexander Yates ở trường đại học Washington [3], trích rút
thông tin là quá trình truy vấn những thông tin cấu trúc từ những văn bản
phi cấu trúc.
Theo những chuyên gia làm việc tại GATE 1 thì những hệ thống trích rút
thông tin sẽ tiến hành phân tích văn bản nhằm trích ra những thông tin
cần thiết theo các mẫu đã được định nghĩa trước, như những sự kiện, các
thực thể, các mối quan hệ...

Tóm lại, trích rút thông tin (Information Extraction) là một kỹ thuật, lĩnh vực
nghiên cứu có liên quan đến truy vấn thông tin (Information Retrieval), khai thác dữ
liệu (Data mining), cũng như xử lý ngôn ngữ tự nhiên (Natural Language Processing).
Mục tiêu chính của trích rút thông tin là tìm ra những thông tin cấu trúc từ văn bản phi
cấu trúc hoăc bán cấu trúc (các thực thể, mỗi quan hệ giữa các thực thể và các thuộc
tính mô tả thực thể). Trích rút thông tin sẽ tìm cách chuyển thông tin trong văn bản
không hay bán cấu trúc về dạng có cấu trúc và có thể biểu diễn hay thể hiện chúng một
cách hình thức dưới dạng một tập tin cấu trúc XML hay một bảng cấu trúc (như bảng
trong cơ sở dữ liệu).
Một khi dữ liệu, thông tin từ các nguồn khác nhau, từ internet có thể biểu diễn
một cách hình thức, có cấu trúc, chúng ta có thể sử dụng các kỹ thuật phân tích, khai
thác dữ liệu (data mining) để khám phá ra các mẫu thông tin hữu ích.


Chẳng hạn như việc cấu trúc lại các mẫu tin quảng cáo, mẫu tin bán hàng
trên internet có thể giúp hỗ trợ tư vấn, định hướng người dùng khi mua

sắm.

1 />

12

Trích rút và cấu trúc lại các mẫu tin tìm người, tìm việc sẽ giúp cho quá
trình phân tích thông tin nghề nghiệp, xu hướng công việc, … hỗ trợ cho
các người tìm việc, cũng như nhà tuyển dụng.
 Hay như việc làm sạch dữ liệu (Data cleaning), khi một khách hàng điền
địa chỉ trên mỗi một hóa đơn là khác nhau, hệ thống phải trích rút thông
tin về địa chỉ khách hàng, đồng nhất chúng và loại bỏ những thông tin dư
thừa.
 Hỗ trợ so sánh khi mua sắm (Comparison Shopping) trên các website
thương mại điện tử, hệ thống tạo ra sự tiện dụng cho khách hàng khi
cung cấp cho họ công cụ để có thể so sánh sản phẩm tại nhiều địa điểm
giao dịch khác nhau, hoặc giữa các sản phẩm, dựa trên các trường dữ
liệu như tên sản phẩm, giá bán, phản hồi khách hàng, thông số kỹ
thuật.....


Từ những ngày đầu, trích rút thông tin chỉ tập trung vào nhận biết các thực thể
có tên (chẳng hạn như tên người, tên các công ty, địa danh, địa điểm...) và mối quan hệ
giữa chúng bên trong những văn bản sử dụng ngôn ngữ tự nhiên.
Về sau, các kỹ thuật nhận dạng mới dựa trên các quy luật (rule-based) được tìm
ra. Từ các luật ngôn ngữ thông dụng, họ đưa ra giải thuật học luật tự động từ những
mẫu đã được phát triển sẵn. Tuy nhiên, mục tiêu của IE là các nguồn thông tin phi cấu
trúc, do đó, các luật là chưa đủ và còn quá cứng nhắc.
Phương pháp học dựa trên thống kê được đưa ra và trong đó có 2 kỹ thuật được
phát triển song song: Mô hình sinh ngẫu nhiên (Generative models) dựa trên mô hình

Markov ẩn và mô hình điều kiện (Conditional model) dựa trên entropy. Cả hai được
gọi với tên phổ biến là Lĩnh vực ngẫu nhiên có điều kiện (CRFs - Conditional Random
Fields). Khi phạm vi của trích rút dữ liệu được mở rộng, nó được chú trọng hơn tới
việc phân tích về cấu trúc và ngữ pháp...
Các nghiên cứu hiện nay liên quan đến rút trích thông tin văn bản tập trung vào:


Rút trích các thực thể có tên (Named Entity Recognition): Nhận dạng các
đối tượng thông tin về địa danh, địa điểm, tên riêng,... Đây là bài toán khá phổ
biến và được dùng nhiều trong các ứng dụng tìm kiếm.
Ví dụ: Tìm kiếm từ khóa “Lê Thái Tổ”, Google sẽ phải tìm kiếm những văn bản
có chứa từ khóa và trích rút nó để đưa ra kết quả cho người dùng.



Rút trích quan hệ (Relationship Extraction): là bài toán tìm kiếm và xác
định mối quan hệ giữa các thực thể trong văn bản. Ví dụ như mối quan hệ giữa
người và người, mối quan hệ giữa tổ chức - công ty, mối quan hệ giữa địa danh
- sự kiện...


13

Ví dụ: Trong câu “Ngày 10/10, Đà Nẵng tổ chức Lễ hội pháo hoa quốc tế”.
Mối quan hệ giữa “Đà Nẵng” và “Lễ hội pháo hoa quốc tế” là “tổ chức”.
Càng ngày, bài toán trích rút thông tin càng chứng minh được tầm quan trọng
và tính thiết thực của nó. Do đó, các kỹ thuật trích rút ngày càng được phát triển, và
không ngừng cho đến ngày nay.
Tóm lại, trích rút thông tin là một lĩnh vực lớn, có rất nhiều khía cạnh và có thể
áp dụng cho nhiều đối tượng thông tin khác nhau. Song đồ án này chỉ tập trung vào 2

đối tượng thông tin chính là: thời gian và địa điểm với nguồn thông tin từ dữ liệu tin
nhắn điện thoại.
1.3. Hướng tiếp cận
Theo [1][5] thì các phương pháp trích rút hiện nay chia thành hai cách tiếp cận
chính: tiếp cận công nghê tri thức (Knowledge Engineering) và tiếp cận học máy tự
động (Automatic Training)
Tiếp cận tri thức

Tiếp cận học tự động

• Dựa trên luật, mẫu được xây dựng thủ công.
• Được phát triển bởi những chuyên gia ngôn
ngữ, chuyên gia lĩnh vực có kinh nghiệm.
• Dựa vào trực giác, quan sát. Hiệu quả đạt
được tốt hơn. Việc phát triển có thể sẽ tốn
nhiều thời gian
• Khó điều chỉnh khi có sự thay đổi

• Dựa trên học máy thông kê.
• Người phát triển không cần thành thạo ngôn
ngữ, lĩnh vực.
• Cần một lượng lớn dữ liệu học được gán
nhãn tốt.
• Khi có sự thay đổi  có thể cần phải gán
nhãn lại cho cả tập dữ liệu học.

1.4. Phương pháp trích rút thông tin
Các phương pháp sử dụng trong lĩnh vực trích rút thông tin được phân chia làm
2 loại: Thủ công hoặc dựa trên học tri thức, và dựa trên các luật hoặc thống kê [7].
Thủ công (Hand-coded) hoặc dựa trên học tri thức (Learning-based): Hệ

thống thủ công cần con người đưa ra các định nghĩa các luật (rule), các biểu
thức chính quy (regular expression), hoặc những chương trình mẫu để biểu
diễn các trường hợp trích rút. Những người này thường là các chuyên gia
ngôn ngữ học, lập trình viên để có thể đưa ra và phát triển các luật trích rút.
Mặt khác, đối với hệ thống học tri thức, các mẫu phi cấu trúc đã được đánh
nhãn sẵn sẽ được sử dụng để huấn luyện bộ học máy của chương trình (các
phương pháp học máy sẽ được đề cập tới trong phần sau).
• Dựa trên các luật (Rule-based) hoặc thống kê (Statistical): Phương pháp
trích rút dựa trên luật phụ thuộc vào các dấu hiệu xuất hiện của các từ. Còn
phương pháp thống kê thì đưa ra sự lựa chọn dựa trên việc đánh giá các



14

thông số. Phương pháp dựa trên luật thì dễ hiểu và dễ cài đặt hơn. Còn
phương pháp dựa trên thống kê lại cứng nhắc hơn (robust to noise). Do đó,
các hệ thống dựa trên luật thường hữu dụng hơn trong các miền đóng
(closed domain).
1.5. Các phương pháp học máy
1.5.1. Học có giám sát (supervised learning)
Học có giám sát là một kĩ thuật để xây dựng một hàm/ mô hình (function/
model) từ dữ liệu huấn luyện. Dữ liệu huấn luyện bao gồm các cặp gồm đối tượng đầu
vào và đầu ra mong muốn. Đầu ra có thể là một giá trị liên tục, hay có thể là một nhãn
phân loại cho một đối tượng đầu vào. Nhiệm vụ của chương trình học có giám sát là
dự đoán giá trị của hàm cho một đối tượng bất kì là đầu vào hợp lệ, sau khi đã xem xét
một số ví dụ huấn luyện (các cặp đầu vào và đầu ra cho trước). Để đạt được điều này,
chương trình học phải tổng quát hóa từ các dữ liệu sẵn có để dự đoán được những tình
huống chưa gặp phải theo một cách "hợp lí" nhất.
Hiện nay phần lớn các công trình giải quyết bài toán trích rút NER thường sử

dụng kỹ thuật học máy có giám sát như mô hình Markov ẩn, cây quyết định, mô hình
Maximum entropy, máy vectơ hỗ trợ (SVM). Nhược điểm của học có giám sát là đòi
hỏi tập dữ liệu huấn luyện gán nhãn bằng tay cực lớn.
1.5.2. Học không giám sát (unsupervised learning)
Học không có giám sát là một phương pháp nhằm tìm ra một mô hình mà phù
hợp với các quan sát. Nó khác biệt với học có giám sát ở chỗ là đầu ra cho mỗi đầu
vào là không biết trước.Trong học không có giám sát, dữ liệu huấn luyện ban đầu hoàn
toàn chưa được gán nhãn được thu thập. Nó coi các đối tượng đầu vào như là một tập
các biến ngẫu nhiên. Sau đó, một mô hình xác suất sẽ được xây dựng cho tập dữ liệu
đó.
Các thuật toán thường sử dụng học không giám sát như: K-Means,
HAC (Hierarchical Agglomerative Clustering), SOM (Self-Organizing Map),
DBSCAN, FCM,... Các hệ thống học máy này không đòi hỏi phải gán nhãn dữ liệu
huấn luyện. Nhưng với phương pháp này, khả năng phát hiện thực thể và độ chính xác
không cao.
1.5.3. Học bán giám sát
Học bán giám sát sử dụng cả dữ liệu đã gán nhãn và không gán nhãn để huấn
luyện - điển hình là một lượng nhỏ dữ liệu có gán nhãn cùng với lượng lớn dữ liệu
chưa gán nhãn. Học bán giám sát đứng giữa học không giám sát (không có bất kì dữ
liệu có nhãn nào) và có giám sát (toàn bộ dữ liệu đều được gán nhãn). Nhiều nhà
nghiên cứu nhận thấy dữ liệu không gán nhãn khi được sử dụng kết hợp với một chút


15

dữ liệu có gán nhãn, có thể cải thiện đáng kể độ chính xác. Để gán nhãn dữ liệu cho
một bài toán học máy thường đòi hỏi một chuyên viên có kĩ năng để phân loại bằng
tay dữ liệu huấn luyện và chi phí cho quy trình này không hề nhỏ, trong khi dữ liệu
không gán nhãn thường có sẵn và tương đối rẻ. Trong tình huống đó, học bán giám sát
có giá trị thực tiễn lớn.

Một số thuật toán thường được sử dụng gồm có: thuật toán Cực đại kỳ vọng
(EM - Expectation Maximization), SVM truyền dẫn (TSVM - Transductive Support
Vector Machine), Self-training, Co-training và các phương pháp dựa trên đồ thị
(graph-based).
1.6. Một số dữ liệu, thư viện hỗ trợ
Sau thời gian dài ra đời và phát triển, cộng đồng nghiên cứu đã xây dựng và
phát triển được khá nhiều các kho dữ liệu cấu trúc và phi cấu trúc cho văn bản, các
công cụ, thư viện và ứng dụng phục vụ trích rút thông tin, phân tích và khai thác thông
tin.
Dưới đây là một vài dữ liệu đầu vào, thư viện đã được phát triển sẵn hỗ trợ tiền
xử lý các dữ liệu phi cấu trích cho bài toán trích rút dữ liệu: các cơ sở dữ liệu có cấu
trúc (Structured Databases), các văn bản phi cấu trúc đã được đánh nhãn (Labeled
Unstructured Text), các thư viện có sẵn cho văn bản phi cấu trúc (Libraries)






Natural Language Text: Các thư viện xử lý ngôn ngữ tự nhiên
o Sentence analyzer and tokenizer: nhận dạng phạm vi của câu trong văn

o

bản và phân tích từng câu thành các token. Các token được tách bởi các ký
tự phân cách như ký tự trắng, dấu phẩy, dấu chấm. Một ví dụ tiêu biểu về
Token như là 1 từ, 1 số hay dấu hết câu.
POS tagger (Part of speech tagger): gán cho mỗi từ một nhãn là loại từ

o


trong ngữ pháp. Các nhãn này bao gồm: danh từ, động từ, tính từ, phó từ...
Paser: chia các từ vào cụm: cụm danh từ, cụm động từ, cụm giới từ. Kết

o

quả thu được là 1 mô hình cây được phân chia rõ ràng các cụm từ.
Dependency analyzer: nhận dạng các từ trong câu và các tham số liên

quan của từ đó. Kết quả thu được là 1 biểu đồ gồm các node (các từ) và
các đường kẻ liên kết, diễn tả mối liên hệ giữa các từ. Thư viện này rất có
lợi đối với trích rút mối quan hệ (relationship extraction).
Formatted Text: Đối với những văn bản có sẵn định dạng như pdf hay các
trang web, ta cần phải tìm hiểu nắm được cấu trúc của chúng trước khi tiến
hành nhận dạng entity. Hai bước chính cần làm đối với những văn bản kiểu
này: trích rút các thành phần (item) trong danh sách (list) và tạo ra mô hình
phân cấp các vùng, tương ứng với các đơn vị nội dung.
Một vài phần mềm, thư viện khác:


16
o

General Architecture for Text Engineering (GATE): thư viện trên nền Java,

được phát triển bởi trường đại học Sheffield ở Anh. GATE cung cấp một
môi trường hỗ trợ cho người dùng phát triển, viết các phần mềm xử lý ngôn
ngữ tự nhiên, khai phá dữ liệu.
o Apache OpenNLP: thư viện này giúp xử lý ngôn ngữ tự nhiên dựa trên
phương pháp học máy. Nó cung cấp các hàm để thực hiện những công việc

cơ bản của xử lý NNTN (tokenization, sentence segmentation, POS
tagging..).
o OpenCalais: là một web service trích xuất thông tin một cách tự động.
o Machine Learning for Language Toolkit (Mallet): một package ngôn ngữ
trên nền Java, hỗ trợ trích xuất thông tin.
o DBpedia Spotlight: là một công cụ mã mở viết bằng ngôn ngữ Java hoặc
Scala, thường dùng để nhận dạng các thực thể có tên. Ngoài ra, nó là một
sản phẩm của dự án DBpedia - dự án được xây dựng hướng tới trích xuất
các nội dung có cấu trúc, từ những dữ liệu được tạo bởi Wikipedia. DBpedia
cho phép người dùng truy vấn được mối quan hệ, các thuộc tính liên quan
tới tài nguyên của Wikipedia, bao gồm cả những đường dẫn tới các bộ dữ
liệu khác.
o Natural Language Toolkit: một bộ thư viện và các chương trình hỗ trợ xử lý
NNTN, viết bằng ngôn ngữ lập trình Python.
o Conditional Random Field (CRF): Thư viện này được sử dụng trong đồ án
và sẽ được nói rõ ở phần sau.
1.7. Khó khăn của bài toán trích rút thông tin
1.7.1. Tính đúng đắn
Mặc dù đã hơn 2 thập kỷ nghiên cứu trong lĩnh vực này, thách thức hơn cả đối
với cộng đồng nghiên cứu IE là tạo ra những mô hình đạt tính đúng đắn cao. Dưới đây
là một vài yếu tố gây ảnh hưởng tới độ chính xác trong bài toán trích rút.
Sự đa dạng của các chi tiết gợi ý: Việc nhận dạng trở nên vô cùng phức tạp bởi
nó là sự kết hợp của rất nhiều các chi tiết gợi ý - những chi tiết vô cùng nhỏ, không
mấy hữu ích khi đứng độc lập. Thậm chí, ngay cả việc nhận dạng các thực thể có tên
(NER) là đơn giản và phổ thông nhất cũng phụ thuộc vào rất nhiều những chi tiết nhỏ,
như việc viết đúng chính tả của từng từ, loại từ, sự tương đồng với cơ sở dữ liệu những
thực thể có sẵn hay các ký hiệu đánh dấu trong văn bản....
Khó khăn của việc xác định trích rút sai: Tính đúng đắn của bài toán trích rút
được đánh giá qua 2 thành phần. Một là độ chính xác, là tỉ lệ phần trăm của những
thực thể trích rút chính xác trên những thực thể được trích rút. Hai là độ tin cậy, là tỉ lệ

phần trăm số thực thể được trích rút đúng trên tổng số thực thể. Trong nhiều trường
hợp, ta thu được độ chính xác khá cao, bởi rất dễ tìm ra các lỗi sai, và cứ tìm cho tới


17

khi tìm được hoàn toàn các lỗi. Đạt được độ tin cậy cao là khá khó, bởi nếu không có
những dữ liệu đã được đánh nhãn sẵn, thì khó có thể xác định được đâu là lỗi sai giữa
hàng tá dữ liệu phi cấu trúc như vậy.
Độ phức tạp về cấu trúc: Càng ngày, yêu cầu về việc trích rút thông tin phức
tạp ngày càng cao. Trong nhiều trường hợp, phạm vi của các thực thể không rõ ràng và
hoàn toàn không thể xác định. Do đó, ta phải tham khảo cả các nguồn thông tin khác
nhắc tới thực thể cần tìm...Và vấn đề này không hề đơn giản.
1.7.2. Một số vấn đề hệ thống
Sự thay đổi của các nguồn dữ liệu động: Những mô hình trích rút mất thời gian
khá lâu để xây dựng và điều chỉnh các nguồn dữ liệu phi cấu trúc. Khi các nguồn dữ
liệu có sự thay đổi, kéo theo các hệ thống phải xác định và tìm ra sự thay đổi đó là gì,
từ đó tinh chỉnh lại các mô hình một cách tự động.
Sự tích hợp dữ liệu: Các nguồn dữ liệu cho bài toán trích rút thông tin thường
được xây dựng dựa trên sự tích hợp cả những bộ dữ liệu có sẵn với thông tin đã được
trích rút. Nhiều nhà nghiên cứu đã cố gắng cùng nhau giải quyết vấn đề khai thác và
tích hợp với hy vọng sẽ nâng cao được đọ chính xác hơn so với thực hiện trực tiếp mỗi
bước.
Các lỗi trong trích rút: Chúng ta đều biết rằng trong thực tế không thể có một
hệ thống nào có thể đạt độ chính xác tuyệt đối, ngay cả là những hệ thống mới nhất
hiện nay. Các vấn đề ngày càng trở nên phức tạp Khi nguồn thông tin ngày càng lớn,
các vấn đề cũng ngày càng mở rộng và trở nên phức tạp hơn. Do đó, không thể nào có
một hệ thống chính xác tuyệt đối. Có một phương pháp phần nào giải quyết được vấn
đề này, đó là các lỗi trong trích rút thực thể sẽ được đi kèm theo độ tin cậy, từ đó tìm
được đáp án có độ tin cậy lớn nhất với khả năng chính xác cao nhất.

1.8. Một vài ứng dụng của bài toán trích rút thông tin


Hệ thống so sánh thông số sản phẩm

Trên các trang web thương mai điện tử, người dùng chỉ việc chọn 2 sản phẩm
điện thoại cần so sánh, hệ thống sẽ truy xuất cơ sở dữ liệu, lấy ra thông tin từng sản
phẩm. Nhờ việc trích rút tên các loại thông số, hệ thống tìm ra các thông số tương ứng
giữa 2 sản phẩm và xây dựng bảng, cung cấp cho người dùng một cái nhìn trực quan
hơn, tiết kiệm thời gian, thay vì phải xem thông tin từng loại.


18

Hình 1.4. So sánh thông số sản phẩm (Comparison Shopping)
• Nhận dạng thông tin trong tin nhắn điện thoại

Hệ thống nhận và kiểm tra nội dung tin nhắn, tìm kiếm những thông tin hữu ích
và tự động highlight đoạn text tương ứng. Như trong ví dụ dưới, đường dẫn trang web
được nhận dạng bởi đoạn text “http://” xuất hiện ở đầu và kết thúc bởi dấu chấm và ký
tự trắng ”. ”.
Tương tự với việc nhận dạng dãy số là số điện thoại. Khi người dùng ấn vào
vùng text được highlight, hệ thống tùy thuộc đoạn text đó thuộc phân loại gì và thực
hiện thao tác tương ứng. Ví dụ, nếu là đường dẫn trang web, hệ thống sẽ mở trình
duyệt và truy cập trang web đó. Nếu là số điện thoại, hệ thống mở bàn phím cuộc gọi...


19

Hình 1.5. Nhận dạng thông tin trên điện thoại

• Hỏi đáp (Question Answering) dựa trên Google Search Engine

Một ứng dụng khác là trích rút và lọc ra những thông tin liên quan để tối ưu vấn
đề tìm kiếm thông tin [4]. Ví dụ trong hình 1.6, khi người dùng có nhu cầu tìm kiếm
các công việc liên quan đến nghề làm bánh mì (baker), thì người ta nhập vào Goolge
chuỗi “baker job opening”. Kết quả trả về của Google có rất nhiều thông tin không liên
quan: chẳng hạn thông tin đăng tuyển dụng của trường học MtBaker và công ty Baker
Hostetler, v.v. Những thông tin này không liên quan đến công việc cần tìm là nghề làm
bánh mì (Baker). Đúng ra hệ thống phải trả về các liên kết đến các trang hay các công
ty tuyển dụng nghề “Baker”. Như vậy trong trường hợp này IE có nhiệm vụ trích ra
các liên kết liên quan đến nhu cầu tìm kiếm của người dùng.


20

Mt. Baker, the school district

Baker Hostetler, the company

Baker, a job opening
Genomics job

Hình 1.6 Tìm việc dựa trên search engine (Nguồn tài liệu tham khảo [4])

IE ứng dụng tìm kiếm câu trả lời cho các hệ thống hỏi đáp QA (Question
Answering) dựa vào kết quả trả về của search engine. Gần đây xuất hiện một cách tiếp
cận nghiên cứu phát triển hệ thống QA dựa vào việc phân tích kết quả tìm kiếm trả về
từ các search engine nhằm tìm ra câu trả lời chính xác cho câu hỏi đưa vào. Ví dụ
người dùng cần hỏi “Thành phố nào là thủ đô của nước Việt Nam”, thì kết quả trả về
từ các search engine thì rất nhiều và hệ thống phải tìm cách trích ra câu trả lời mà

người dùng mong chờ, đó là “Hà Nội” hay “Thành phố Hà Nội” Đây là một dạng ứng
dụng kỹ thuật rút trích thông tin IE trong QA. (hình 1.7)


21

Hình 1.7 Hỏi đáp dựa trên các kết quả từ search engine


22

Chương 2: CÁC VẤN ĐỀ GẶP PHẢI VÀ HƯỚNG GIẢI QUYẾT
Chương này sẽ nói về bài toán trích rút thông tin thời gian, địa điểm, kèm theo
là trình bày một cách chi tiết về các phương pháp, các thư viện, công cụ sẽ được áp
dụng để giải quyết bài toán trong đồ án.
2.1. Mô tả bài toán và các vấn đề cần giải quyết
2.1.1. Bài toán
Nhiệm vụ của hệ thống là trích rút được thông tin về thời gian và địa điểm từ
dữ liệu tin nhắn. Tuy nhiên, số lượng dữ liệu tin nhắn đầu vào giữa 2 người dùng là rất
lớn và không phải tin nhắn nào cũng liên quan tới nhau. Do đó, công việc của ta không
chỉ dừng lại ở trích rút thông tin thời gian, địa điểm, mà còn cả tìm kiếm và phân loại
nhằm xác định chuỗi tin nhắn cần thao tác. Vậy nên, hướng thực hiện đồ án được chia
thành 3 phần chính như sau:
-

Nhận dạng hội thoại: Thực hiện các công việc phân loại và xác định chuỗi
tin nhắn đang được trao đổi giữa 2 người dùng, làm đầu vào cho phần trích
rút thông tin thời gian, địa điểm. Bởi trong lịch sử tin nhắn có rất nhiều hội
thoại cũ không cần xét tới.


P2: Chiều đi mua đồ với tôi nhé.
P1: Ừ, cũng đang rảnh.
P1: Tối mai đi uống cafe ở quán Cộng nhé! → “Tối mai”, “quán Cộng”.
P2: OK, tầm 8h tôi qua. → “8h”.
P1: Muộn thế, 7 rưỡi đi. → “7 rưỡi”.
P2: Cũng được.
→ Hai hội thoại được lưu liên tiếp nhau trong lịch sử nhắn tin nhưng nội dung
không liên quan tới nhau.

-

Do đó, SVM sẽ được sử dụng để gán nhãn các câu trong hội thoại, từ đó tìm
ra hội thoại mà ta quan tâm.
Trích rút thông tin thời gian, địa điểm: Sử dụng các đối tượng thu được ở
phần xác định hội thoại, áp dụng trích rút và đưa ra đối tượng thời gian và
địa điểm cuối cùng. Công cụ CRF++ sẽ được sử dụng để hỗ trợ gán nhãn
thời gian, địa điểm.
• Đối với tin nhắn đơn, ta cần trích rút được đối tượng thời gian và địa
điểm được đề cập tới trong tin nhắn.

Tối mai đi uống cafe ở quán Cộng nhé! → “Tối mai”, “quán Cộng”.


23


Đối với hội thoại, các đối tượng thời gian, địa điểm có thể không nằm
trên cùng 1 câu, mà mỗi đối tượng có thể được 1 người đề cập tới.
Mặt khác, vì hội thoại mang tính chất trao đổi nên các mốc thời gian,
địa điểm có thể bị thay đổi, dẫn tới việc nhập nhằng và không thống

nhất như với tin nhắn đơn.

P1: Tối mai đi uống cafe ở quán Cộng nhé! → “Tối mai”, “quán Cộng”.
P2: OK, tầm 8h tôi qua. → “8h”.
P1: Muộn thế, 7 rưỡi đi. → “7 rưỡi”.
P2: Cũng được.
→ Kết quả cần thu được: “7 rưỡi tối mai” và “quán Cộng”.
-

Xây dựng ứng dụng: Dựa vào kết quả trích rút thời gian, địa điểm, áp dụng
để xây dựng một ứng dụng thực tế.

Với ba phần rõ ràng cùng các kiến thức cơ bản về kiểu cấu trúc dữ liệu, giải
thuật đã được trình bày ở chương 2, toàn bộ hoạt động của hệ thống có thể được mô tả
bởi các sơ đồ sau:


24

Hình 2.1 Sơ đồ hoạt động của hệ thống

Tóm lại, đồ án sẽ tập trung vào giải quyết 2 bài toán xử lý chính:
- Nhận dạng hội thoại: sử dụng SVM.
- Trích rút thông tin thời gian, địa điểm: sử dụng CRF.

2.1.2. Giới hạn phạm vi


Giới hạn về vị trí địa lý:



25

Kết quả trích rút sẽ tốt nhất đối với các đối tượng địa điểm trên địa bàn thành
phố Hà Nội.


Giới hạn định dạng đầu vào:

Đối với người Việt Nam, lịch dương được sử dụng chính trong công việc và
cuộc sống thường ngày, nhưng do phong tục và truyền thống của người Á Đông, âm
lịch vẫn được sử dụng song song với dương lịch. Nhiều sự kiện, ngày lễ vẫn được tính
theo lịch này. Hiện tại, đề tài có xử lý một vài trường hợp, ngày lễ tiêu biểu (chẳng hạn
như “tháng Giêng”, “mùng 2 Tết”,..) song chưa hoàn toàn và đầy đủ.
Mặt khác, do trong thời gian thực hiện ngắn, lượng dữ liệu thu thập được còn
chưa nhiều (hơn 500 tin nhắn dữ liệu mẫu, hơn 200 câu hội thoại) nên hiện tại đề tài
còn tập trung vào các trường hợp phổ thông và thường xuyên xuất hiện, chưa thể xử
lý hết các trường hợp khó. Các trường hợp này sẽ dần được cải thiện trong những bộ
dữ liệu tiếp theo.
Để đạt độ chính xác cao, dữ liệu tin nhắn đầu vào cung cấp cho chương trình
cần là dữ liệu “sạch”.
-

Sử dụng đúng bộ chữ trong bảng chữ cái Tiếng Việt, không sử dụng các ký tự
đặc biệt để thay thế cho chữ cái.
Câu đúng ngữ pháp, chính tả.
Không viết tắt, gây mập mờ, ý nghĩa khó hiểu.
Viết hoa chữ cái đầu tiên của tên riêng, tên người, địa danh.

2.1.3. Khó khăn đối với xử lý ngôn ngữ Tiếng Việt

Dữ liệu đầu vào là ngôn ngữ đời thường được sử dụng trong văn nói và văn
viết, do đó, người nói thường không trau truốt trong việc dùng từ và ngữ pháp
của câu văn.
→ Nhiều dạng cấu trúc, các luật phong phú và không đủ.
• Người dùng có sử dụng các từ lóng, hay viết tắt các từ không phải tên riêng,
mỗi người có một cách viết tắt khác nhau (“ktx” – ký túc xá, “ch mai” - chiều
mai, “svđ” – sân vận động,..).
→ Không xử lý được hết, còn bỏ sót.
• Ngôn ngữ Tiếng Việt vốn được sử dụng linh hoạt và có những từ đa nghĩa.
→ Nếu không nắm được ngữ cảnh, máy sẽ “hiểu” sai nghĩa dẫn đến kết quả
trích rút bị sai.
• Đối với những dữ liệu đầu vào là Tiếng Việt không dấu.
→ Nếu chương trình VietMarker thêm dấu không chính xác sẽ dẫn tới câu bị
sai đi ý nghĩa ban đầu, và khiến quá trình trích rút không chính xác.


2.1.4. Các vấn đề liên quan và đề xuất giải pháp
Đối với đề tài “Trích rút thời gian, địa điểm từ dữ liệu tin nhắn”, số lượng dữ
liệu đầu vào là khá nhiều các tin nhắn, và không phải tất cả những tin nhắn đó đều có


×