TIỂU LUẬN NGÔN NGỮ HỌC MÁY TÍNH PHÂN TÍCH CÚ PHÁP NGÔN NGỮ TỰ NHIÊN VỚI CÔNG CỤ NLTK (NATURAL LANGUAGE TOOLKIT)

55 3.7K 20
TIỂU LUẬN NGÔN NGỮ HỌC MÁY TÍNH PHÂN TÍCH CÚ PHÁP NGÔN NGỮ TỰ NHIÊN VỚI CÔNG CỤ NLTK (NATURAL LANGUAGE TOOLKIT)

Đ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

      !" #$%&'( )''*'(+ , /0,1.23456 780,1. 9$:.;./ <=> ?@@?@@A 'BC ;DE78F(EG;H EI./@A.:JK@?K  !" #$%&'( )''*'(+ 2 2 %  Ngôn ngữ học máy tính là một ngành học trong lĩnh vực trí tuệ nhân tạo tập trung vào tất cả các khia cạnh liên quan tới ngôn ngữ của con người và con người với máy tính. Đây là một ngành nghiên cứu có phạm vi khá rộng, nó liên quan chặc chẽ đến các ngành khác trong trí tuệ nhân tạo. Theo yêu cầu đề tài môn “Ngôn Ngữ Học Máy Tính” và sự định hướng của thầy, TS. Nguyễn Tuấn Đăng em quyết định thực hiện bài nghiên cứu về “ !       "  #  $%    &  '(  )' '*'(+L3Mục tiêu chính của bài nghiên cứu này là tìm hiểu một số nguyên lý và cách phân tích cú pháp trong bằng cách sử dụng bộ thư viện NLTK trong python với 3 bước cơ bản sau: - ,M.NOPQRSP,TUVEW3 - I..E<.VX3 - EY.VZ8E8[CEIC3 Em xin chân thành gửi lời cám ơn và chúc sức khỏe đến thầy, TS. Nguyễn Tuấn Đăng đã tạo điều kiện cho em thực hiện bài nghiên cứu này. TP. HCM, Ngày 07 tháng 04 năm 2012 Đỗ Văn Cang 3 3 K3 \]'^"# K3?3_.E./E`; 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 con ngườ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ữ-công cụ hoàn hảo nhất của tư duy và giao tiếp. K3K3I8abB8NOPQ Phân tích hình thái: Trong bước này từng từ sẽ được phân tích và các ký tự không phải chữ (như các dấu câu) sẽ được tách ra khỏi các từ. Trong tiếng Anh và nhiều ngôn ngữ khác, các từ được phân tách với nhau bằng dấu cách. Tuy nhiên trong tiếng Việt, dấu cách được dùng để phân tách các tiếng (âm tiết) chứ không phải từ. Cùng với các ngôn ngữ như tiếng Trung, tiếng Hàn,tiếng Nhật, phân tách từ trong tiếng Việt là một công việc không hề đơn giản. Phân tích cú pháp: Dãy các từ sẽ được biến đổi thành các cấu trúc thể hiện sự liên kết giữa các từ này. Sẽ có những dãy từ bị loại do vi phạm các luật văn phạm. Phân tích ngữ nghĩa: Thêm ngữ nghĩa vào các cấu trúc được tạo ra bởi bộ phân tích cú pháp. Tích hợp văn bản: Ngữ nghĩa của một câu riêng biệt có thể phụ thuộc vào những câu đứng trước, đồng thời nó cũng có thể ảnh hưởng đến các câu phía sau. Phân tích thực nghĩa: Cấu trúc thể hiện điều được phát ngôn sẽ được thông dịch lại để xác định nó thật sự có nghĩa là gì. Tuy nhiên, ranh giới giữa 5 bước xử lý này cũng rất mong manh. Chúng có thể được tiến hành từng bước một, hoặc tiến hành cùng lúc - tùy thuộc vào giải thuật và ngữ cảnh cụ thể. K3c3I8ad,VDI.e./Rf./ • Nhận dạng chữ viết: Có hai kiểu nhận dạng, thứ nhất là nhận dạng chữ in, ví dụ nhận dạng chữ trên sách giáo khoa rồi chuyển nó thành dạng văn bản điện tử như dưới định dạng doc của Microsoft Word chẳng hạn. Phức tạp hơn là nhận dạng chữ viết tay, có khó khăn bởi vì chữ viết tay không có khuôn dạng rõ ràng và thay đổi từ người này sang người khác. Với chương trình nhận dạng chữ viết in có thể chuyển hàng ngàn đầu sách trong thư viện thành văn bản điện tử trong thời gian ngắn. Nhận dạng chữ viết của con người có ứng dụng trong khoa học hình sự và bảo mật thông tin (nhận dạng chữ ký điện tử). • Nhận dạng tiếng nói: Nhận dạng tiếng nói rồi chuyển chúng thành văn bản tương ứng. Giúp thao tác của con người trên các thiết bị nhanh hơn và đơn giản hơn, chẳng hạn thay vì gõ một tài liệu nào đó bạn đọc nó lên và trình soạn thảo sẽ tự ghi nó ra. Đây cũng là bước đầu tiên cần phải thực hiện trong 4 4 ước mơ thực hiện giao tiếp giữa con người với robot. Nhận dạng tiếng nói có khả năng trợ giúp người khiếm thị rất nhiều. • Tổng hợp tiếng nói: Từ một văn bản tự động tổng hợp thành tiếng nói. Thay vì phải tự đọc một cuốn sách hay nội dung một trang web, nó tự động đọc cho chúng ta. Giống như nhận dạng tiếng nói, tổng hợp tiếng nói là sự trợ giúp tốt cho người khiếm thị, nhưng ngược lại nó là bước cuối cùng trong giao tiếp giữa robot với người. • Dịch tự động (machine translate): Như tên gọi đây là chương trình dịch tự động từ ngôn ngữ này sang ngôn ngữ khác. Một phần mềm điển hình về tiếng Việt của chương trình này là Evtrans của Softex, dịch tự động từ tiếng Anh sang tiếng Việt và ngược lại, phần mềm từng được trang web vdict.com mua bản quyền, đây cũng là trang đầu tiên đưa ứng dụng này lên mạng. Tháng 10 năm 2008 có hai công ty tham gia vào lĩnh vực này cho ngôn ngữ tiếng Việt là công ty Lạc Việt (công ty phát hành từ điển Lạc Việt) và Google, một thời gian sau đó Xalo.vn cũng đưa ra dịch vụ tương tự. • Tìm kiếm thông tin (information retrieval): Đặt câu hỏi và chương trình tự tìm ra nội dung phù hợp nhất. Thông tin ngày càng đầy lên theo cấp số nhân, đặc biệt với sự trợ giúp của internet việc tiếp cận thông tin trở lên dễ dàng hơn bao giờ hết. Việc khó khăn lúc này là tìm đúng nhất thông tin mình cần giữa bề bộn tri thức và đặc biệt thông tin đó phải đáng tin cậy. Các máy tìm kiếm dựa trên giao diện web như Google hay Yahoo hiện nay chỉ phân tích nội dung rất đơn giản dựa trên tần suất của từ khoá và thứ hạng của trang và một số tiêu chí đánh giá khác để đưa ra kết luận, kết quả là rất nhiều tìm kiếm không nhận được câu trả lời phù hợp, thậm chí bị dẫn tới một liên kết không liên quan gì do thủ thuật đánh lừa của các trang web nhằm giới thiệu sản phẩm (có tên tiếng Anh là SEO viết tắt của từ search engine optimization). Thực tế cho đến bây giờ chưa có máy tìm kiếm nào hiểu được ngôn ngữ tự nhiên của con người trừ trang www.ask.com được đánh giá là “hiểu” được những câu hỏi có cấu trúc ở dạng đơn giản nhất. Mới đây cộng đồng mạng đang xôn xao về trang Wolfram Alpha, được hứa hẹn là có khả năng hiểu ngôn ngữ tự nhiên của con người và đưa ra câu trả lời chính xác[1]. Lĩnh vực này hứa hẹn tạo ra bước nhảy trong cách thức tiếp nhận tri thức của cả cộng đồng. • Tóm tắt văn bản: Từ một văn bản dài tóm tắt thành một văn bản ngắn hơn theo mong muốn nhưng vẫn chứa những nội dung thiết yếu nhất. • Khai phá dữ liệu (data mining) và phát hiện tri thức: Từ rất nhiều tài liệu khác nhau phát hiện ra tri thức mới. Thực tế để làm được điều này rất khó, nó gần như là mô phỏng quá trình học tập, khám phá khoa học của con người, đây là lĩnh vực đang trong giai đoạn đầu phát triển. Ở mức độ đơn giản khi kết hợp với máy tìm kiếm nó cho phép đặt câu hỏi để từ đó công cụ tự tìm ra câu trả lời dựa trên các thông tin trên web mặc cho việc trước đó có câu trả lời lưu trên web hay không (giống như trang Yahoo! hỏi và đáp, nơi chuyên đặt các câu hỏi để người khác trả lời), nói một cách nôm na là nó đã biết xử lý dữ liệu để trả lời câu hỏi của người sử dụng, thay vì máy móc đáp trả những gì chỉ có sẵn trong bộ nhớ. • Hệ thống hỏi trả lời (Question Answering) 5 5 c3 g'($hi6 c3?3d,jkV'( Các yêu cầu cụ thể cài đặt bộ thư viện NLTK tham khảo tại địa chỉ sau http://www.nltk.org/download. Sau khi cài đặt xong Python, chúng ta có thể cài các thư viện bằng bộ xài trực tiếp hoặc build và cài từ source (không phụ thuộc hệ đều hành) bằng lệnh sau, thực hiện với đường dẫn làm việc là thư mục nguồn. python setup.py install Các phần mềm yêu cầu cơ bản El.JMJ m,n./,-, Python Bài viết này sử dụng Python 2.7.x NLTK Sử dụng version 2.x.x NLTK-Data Chứa dữ liệu ví dụ và các dữ liệu thư viện đã được học. NumPy Thư viên tính toán hỗ trợ mảng đa chiều và đại số tuyến tính cần thiết cho các xử lý xác suất, tagging, clustering, và classification. Matplotlib Thư viên vẽ sơ đồ trực quan được sử dụng minh họa trong NLTK NetworkX Lưu trữ và tính toán tên mạng,đồ thị bao gồm đỉnh và cạnh, sử dụng o;CE0,p cho thể hiên giao diện. Prover9 Hỗ trợ nghiên cứu tự động suy diễn. c3K3I8VZ.E.:./ NLTK là một bộ thư viện, chương trình trợ rất mạnh mẽ xử lý ngôn ngữ tự nhiên (NLP) bằng tất cả các kỹ thuật có thể có một cách trực tiếp hoặc gián tiếp trong ngôn ngữ python. Nó bao gồm tất cả các ví dụ, dữ liệu mẫu và các ứng dụng trình diễn bằng đồ họa. NLTK rất thích hợp cho các sinh viên học về NLP hoặc nghiên cứu trong lĩnh vực NLP hoặc các lĩnh vực liên quan chặt chẽ như : ngôn ngữ học thực nghiêm, khoa học nhận thức, trí tuệ nhân tạo, rút trích(tìm kiếm) thông tin, máy học. NLTK đã được sử dụng thành công như một công cụ giảng dạy,như một công cụ nghiên cứu cá nhân, và như là một nền tảng cho các hệ thống nghiên cứu tạo mẫu và xây dựng. Một số modules quan trọng của NLTK Ee8.:./NOPQ m,n./,-, DRUPq Accessing corpora Chuẩn hóa giao diện đoạn văn(corpora) và từ vựng(lexicons) nltk.corpus String processing Tách câu, tách từ(token) và họ từ(stemmers) nltk.tokenize nltk.stem Collocation discovery Khám phá cụm từ: t-test, chi-squared, point-wise mutual information. nltk.collocations Part-of-speech tagging I..E<.VX.r/o;Jsa;8tDuuso,PPs s. .PVt3V;/ P;==,u,8;V,D. EY.PDv, 8YwxUwyVj_.E J;N,JUJq.VoDCw .;,0q;wq= * trJq;.= .PVt38P;==,uw .PVt38PU=Vqo Chunking regular expression nltk.chunk 6 6 I8E8YU 2q.Vq.8q=q/Jq.V;V,D. ).PVt3VDtq.,pq+ I8EVX Dtq.,p;V,D. ).PVt3VDtq.,pq+ I..E<.VX ;//,./ ).PVt3V;/+ Xác định thành phần Entity detection Xác định quan hệ Relation detection Chuẩn hóa từ Stemming, Lemmatization (nltk.stem) EY.VZ8E8[CEIC ;o=,./ ).PVt3C;o=q+ mSP,TU0:.a VEW ;zqNV)=Vo,./+ POS-tag sentence (list of lists of tuples) Chunked sentence Relation (list of tuples) Structure sentence (list of trees) Tokenized sentences (list of lists of strings) Sentences (list of strings) n-gram named-entity ;o=,./ E;oV uq;VUoqra;=qR U.,u,8;V,D. CoDa;a,P,=V,8sRqCq.Rq.8w .PVt3C;o=q Semantic interpretation lambda calculus, first-order logic, model checking nltk.sem nltk.inference Evaluation metrics precision, recall, agreement coefficients nltk.metrics Probability and estimation frequency distributions, smoothed probability distributions nltk.probability Applications graphical concordancer, parsers, WordNet browser, chatbots nltk.app nltk.chat Linguistic fieldwork manipulate data in SIL Toolbox format nltk.toolbox Ngoài ra NLTK còn cung cấp giao diện giao tiếp với nhiều thư viện xử lý khác như một số thự viện sau: Weka Classsifiers - http://www.cs.waikato.ac.nz/ml/weka/ Stanford NLP - http://nlp.stanford.edu/ TADM - http://tadm.sf.net Megam - http://www.cs.utah.edu/~hal/megam/ Mallet Machine Learning - http://mallet.cs.umass.edu/ c3c3WE{.ECEY.VZ8E8|UVo[80:.CEvJ Có thể nói rằng với hệ thống đồ sộ các thư viên trong NLTK, chúng ta có thể thực hiện nhiều việc trong nhiều lĩnh vực khác nhau như đã đề cập phần 1.2, tuy nhiên trong phạm vi bài tiểu luận này em tập trung chính vào việc phân tích cú pháp của văn phạm nên em chỉ đưa ra mô hình phân tích đơn giản như sau: 7 7 A3 #'^im& A3?3EY.PBC0:.a )qNVP;==,u,8;V,D.+ Trong các mô hình xử lý ngôn ngữ tự nhiên, các mô hình dựa trên lý thuyết thống kê là một phần rất quan trọng và mang tính thực tiễn cao. Bởi vì ngôn ngữ tự nhiên qua đa dạng để có thể sử dụng mô hình nào đó để áp dụng với độ chính xác cao. Đó cũng chính là chỗ khắc phục các yếu điểm của các mô hình khác của phương pháp thống kê. EY.PBC Cho tập các mẫu đã phân lớp trước, xây dựng mô hình cho từng lớp. • Mục đích: Gán các mẫu mới vào các lớp với độ chính xác cao nhất có thể. • Cho tập dữ liệu m}~V?sVKs•sV.€ và tập các lớp }~?s•3sJ€, phân lớp là bài toán xác định ánh xạ f: DC sao cho mỗi ti được gán vào một lớp Cj. • Lưu ý: trong mỗi một phần tử dữ liệu sẽ chứa tập các thuộc tính của dữ liệu. Các thuộc tính này là các cột trong cơ sở dữ liệu hoặc là các đặc trưng của các thể hiện đối tượng. EY.PBC0:.a là các phương pháp phân lớp dựa trên nội dung của văn bản, nó liên quan đến quá trình máy học thực hiện trên nội dung của văn bản để ra quyết định cho các băn bản mới. Giả sử chúng ta đã có khái niệm và am hiểu về khái niệm phân lớp (trong lĩnh vực máy học), phần phân lớp văn bản này sẽ tìm hiểu một số phương pháp phân lớp sử dụng cho phân lớp văn bản về xử lý ngôn ngữ tự nhiên. Ví dụ mình họa tập dữ liệu phân lớp trong đó C (Class)= {C1,C2}={yes,no} 8 8 A3?3?3 EY.PBC8G/,IJ=IV)2UCqo0,=qRP;==,u,8;V,D.+ Một phân lớp được gọi là giám sát nếu nó được xây dựng trên cơ sở tập văn bản huấn luyện chứa các nhãn chính xác cho mỗi đầu vào. Sơ đồ khung được sử dụng bởi phân lớp có giám sát như sau: • •q;VUoqqNVo;8VDo: lấy các đặc trưng (featutes) từ tập đầu vào. • ‚JKxUIVo{.E: quá trình huấn luyện(a) và quá trình dự đoán(b). • U|.PUwT.: cặp bộ (đặc trưng,nhãn) được đưa vào các thuật toán máy học để tạo ra mô hình. Dữ liệu huấn luyện được phân tích bởi thuật tóan phân lớp ( có thuộc tính nhãn lớp). 9 9 • mƒjDI.: các đặc trưng được đưa vào mô hình để dự đoán ra kết quả các nhãn.Dữ liệu kiểm tra được dùng để ước lượng độ chính xác của bộ phân lớp. Nếu độ chính xác là chấp nhận được thì có thể dùng bộ phân lớp để phân lớp các mẫu dữ liệu mới. • „  8EZ.E  NI8  );88Uo;8w+ Độ chính xác của bộ phân lớp trên tập kiểm tra cho trước là phần trăm của các mẫu trong tập kiểm tra được bộ phân lớp xếp lớp đúng. A3?3K3 YwxUwyVj_.E)mq8,=,D.oqq=+ Cấu tạo cây quyết định: gồm 3 thành phần chính  Node không kết thúc: phép kiểm thử (test) trên một thuộc tính.  Node kết thúc (lá) : nhãn/mô tả của một lớp (class label)  Nhánh từ một node không kết thúc: kết quả của một phép thử trên thuộc tính tương ứng. E,y.Pb…88†a NYwRƒ./8Yw • Bắt đầu từ node đơn biểu diễn tất cả các mẫu • Thuật toán cơ bản o Xây dựng một cây đệ quy phân chia và xác định đặc tính từ trên xuống o Nếu các mẫu thuộc về cùng một lớp, node trở thành node lá và được gán nhãn bằng lớp đó. o Ngược lại, dùng độ jDVEU„8VZ.E để chọn thuộc tính sẽ phân tách tốt nhất các mẫu vào các lớp. o Một nhánh được tạo cho từng giá trị của thuộc tính được chọn và các mẫu được phân hoạch theo tập giá trị đó. o Tiến trình kết thúc chỉ khi bất kỳ điều kiện nào sau đây là đúng  Tất cả các mẫu thuộc về cùng một lớp.  Không còn thuộc tính nào nữa để phân chia.  Không còn mẫu nào để phân lớp. • Nhiều dạng khác nhau: ID3, C4.5, CART, CHAID o Điểm khác biệt chính: tiêu chuẩn/thuộc tính phân chia, độ đo để chọn lựa. 10 10 [...]... InfoA(D) (sau phân hoạch với A) • Độ đo Gain Ratio (C4.5) o Chuẩn hoá information gain với trị thông tin phân tách (split information): SplitInfoA(D) o Thuộc tính phân chia A tương ứng với trị GainRatio(A) là trị lớn nhất 11 11 • Độ đo Gini Index (CART) o Sự phân tách nhị phân (binary split) cho mỗi thuộc tính A:   là một tập con gồm một hay v-1 trị thuộc tính A o Gini index của một thuộc tính là trị... một phân phối ngẫu nhiên cho trước Ví dụ: Một dòng chữ luôn chỉ có các ký tự "a" sẽ có entropy bằng 0, vì ký tự tiếp theo sẽ luôn là "a" Một dòng chữ chỉ có hai ký tự 0 và 1 ngẫu nhiên hoàn toàn sẽ có entropy là 1 bit cho mỗi ký tự Entropy của biến ngẫu nhiên Entropy của một biến ngẫu nhiên X cũng là giá trị mong đợi của các độ ngẫu nhiên của các giá trị mà X có thể nhận Xét một biến ngẫu nhiên X có phân. .. tương ứng với một tập con từ – 2 tập con o Thuộc tính phân chia tương ứng với gini index nhỏ nhất để tối đa hóa sự suy giảm về độ trùng lắp giữa các phân hoạch 4.1.3 Phân lớp Naive Bayes • Phương pháp phân loại dựa trên xác suất • Định lý Bayes o X: một tuple/đối tượng (evidence) o H: giả thuyết (hypothesis)  X thuộc về lớp C o P(H|X): posterior probability  Xác suất có điều kiện của H đối với X ... tính • Độ đo Information Gain (ID3) o Thuộc tính tương ứng với information gain lớn nhất sẽ được chọn làm thuộc tính phân chia cho node N o Lượng thông tin cần để phân loại một phần tử trong D (= Entropy của D): Info(D)  pi: xác suất để 1 phần tử bất kỳ trong D thuộc về lớp Ci với i = 1 m  : tập các phần tử của lớp Ci trong D o Lượng thông tin cần để phân loại một phần tử trong D dựa trên thuộc tính. .. được với thuật toán Viterbi, với các trạng thái là các nhẫn tuần tự 4.3 Tách câu với Punkt sentence tokenizer Tách câu trong văn bản là bước đầu tiên sau bước thu thập dữ liệu văn bản từ các nguồn dữ liệu văn bản Ứng với mỗi ngôn ngữ khác nhau, có rất nhiều cách để tách câu ra từ một bài văn, từ những cách đơn giản nhất tới những cách hiệu quả nhất cho từng loại ngôn ngữ Tuy nhiên, về cơ bản thì việc tách... xử lý ngôn ngữ tự nhiên Tất cả các công đoạn xử lý khác luôn luôn phải bắt đầu với một danh sách các từ trong một câu Tương tự như tách câu, sử dụng tách từ rất đơn giản >>> from nltk. tokenize import word_tokenize >>> word_tokenize('Hello Tearcher.') ['Hello', ' Tearcher ', '.'] word_tokenize() là hàm ngắn gọn sử dụng thể hiện của lớp TreebankWordTokenizer để gọi thực hiện tách từ 24 24 >>> from nltk. tokenize... Tagger sử dụng regular expression để gán nhãn từ, ví dụ, một số có thể khớp với \d gán nhãn CD(cardinal number), hoặc có thể khớp với hậu tố “ing” cho các từ có dạng sẳn như động từ tiếp diễn Tuy nhiên hãy cẩn thận vì ngôn ngữ tự nhiên không luôn tuân theo một số quy tắc cố định Để sử dụng tốt dạng này ta nên tìm hiểu rõ về cú pháp regular expression Tạo RegexpTagger bằng danh sách các cặp giá trị (regular... nhất trong 3 bộ này để lấy làm bộ phân tích cho mỗi từ dựa trên nguyên tắc thống kê xác suất cao nhất và xác suât cao nhất có điều kiện Nó cũng cố gắng đưa ra các ứng viên gán nhãn cho toàn bộ câu một lần cũng dựa vào thống kê Tương tự các phương pháp khác, bạn có thể bổ sung một bộ phân tích dự phòng (unknown) cho trường hợp các từ không thể tìm được nhãn với 3 bộ phân tích con ở trên Lưu ý phải luôn... vậy với thẻ và tất cả các lược từ(phần thiếu của từ) với nhãn Tất cả dấu chấm theo sau từ không viết tắt được giả sử là mốc chỉ ranh giới câu và nhận được sự chú thích 20 20 4.4 Văn phạm phi ngữ cảnh (Context Free Grammar) Rất nhiều ngôn ngữ quan trọng,ví dụ như ngôn ngữ lập trình, không thể được mô tả bởi hữu hạn automata và các biểu thức chuẩn mực Một cách định nghĩa chung nhất về mô hình cụm... theo CFG có thể phát sinh ra nhiều câu • Nếu như S => *w với w chỉ gồm các kí hiệu kết thúc, ta nói w là một từ của văn phạm G • Tập hợp tât cả các từ như vậy tạo thành một ngôn ngữ tương ứng với CFG G, kí hiệu là L(G) • Ngôn ngữ này thuộc loại văn phạm phi ngữ cảnh context-free grammar o L(G) = {w | w chỉ gồm các chốt | S=>*w} • Chuỗi phù hợp với LG được gọi là hợp văn phạm (GRAMMARTICAL) ví dụ các

Ngày đăng: 11/04/2015, 15:07

Từ khóa liên quan

Mục lục

  • GIỚI THIỆU

  • 2. XỬ LÝ NGÔN NGỮ TỰ NHIÊN

    • 2.1. Định nghĩa

    • 2.2. Các bước xử lý

    • 2.3. Các bài toán ứng dụng

  • 3. CÀI ĐẶT NLTK VÀ TỔNG QUAN CHỨC NĂNG

    • 3.1. Cài đặt NLTK

    • 3.2. Các tính năng

    • 3.3. Mô hình phân tích cấu trúc văn phạm

  • 4. CÁC NGUYÊN LÝ ỨNG DỤNG

    • 4.1. Phân lớp văn bản (Text Classification)

      • 4.1.1. Phân lớp có giám sát (Supervised Classification)

      • 4.1.2. Cây quyết định (Decision Trees)

      • 4.1.3. Phân lớp Naive Bayes

      • 4.1.4. Phân lớp Maximum Entropy

    • 4.2. Mô hình Markov ẩn

      • 4.2.1. Mô hình Markov ẩn là gì?

      • 4.2.2. Định nghĩa mô hình HMM

      • 4.2.3. Ứng dụng HMM:

      • 4.2.4. Ứng dụng vào gán nhãn trong NLTK

    • 4.3. Tách câu với Punkt sentence tokenizer

    • 4.4. Văn phạm phi ngữ cảnh (Context Free Grammar)

      • 4.4.1. Định nghĩa

      • 4.4.2. Hệ phái sinh (derivation)

  • 5. TÌM HIỂU MỘT SỐ CHỨC NĂNG TRONG NLTK

    • 5.1. Tách câu (sentences tokenization)

    • 5.2. Tách từ (word tokenization)

    • 5.3. Gán nhãn (tagging)

      • 5.3.1. The Default Tagger

      • 5.3.2. The Regular Expression Tagger

      • 5.3.3. N-Gram Tagger

        • UnigramTagger

        • Định nghĩa lại ngữ cảnh

        • Tham số giới hạn số lần xuất hiện

        • Kết hợp các bộ gán nhãn với backoff.

        • Huấn luyện và kết hợp các bộ gán nhãn Ngram với nhau

      • 5.3.4. Affix tagger

      • 5.3.5. Classifier-based tagger

        • Tùy chỉnh bộ trích đặc trưng

        • Xác suất sử dụng backoff

        • Sử dụng lại bộ phân lớp đã tồn tại

      • 5.3.6. TnT tagger

      • 5.3.7. Brill tagger (transformational rule-based)

      • 5.3.8. HMM Tagger

    • 5.4. Parsing (phân tích cấu trúc câu)

      • 5.4.1. Văn phạm phi ngữ cảnh (Context Free Grammar)

        • Sử dụng với định nghĩa văn phạm.

        • Định nghĩa văn phạm trong file

        • Đệ quy trong cấu trúc cú pháp

        • Phân tích cú pháp với văn phạm phi ngữ cảnh(CFG)

      • 5.4.2. Recursive Descent Parsing

      • 5.4.3. Shift-Reduce Parsing

      • 5.4.4. The Left-Corner Parser

      • 5.4.5. Chart Parsing: Well-Formed Substring Tables

      • 5.4.6. Văn phạm phụ thuộc

  • 6. KẾT LUẬN

  • Tài liệu tham khảo

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan