Đọc ngày 2026-08-07

Kế hoạch hôm nay

Câu hỏi dẫn đường

  • Information extraction biến text thành cấu trúc như thế nào?
  • Keyphrase extraction khác NER ở đâu?
  • IE pipeline cần những bước nào trước khi thành dữ liệu dùng được?

Ghi chú trong khi đọc

  • IE Applications mở Chapter 05 bằng ý chính: text là dữ liệu phi cấu trúc, còn IE cố gắng rút ra thông tin có ích như entity, event, relation hoặc record có thể query.
  • So với database/table có schema rõ, free-flowing text khó hơn vì không biết sẵn thông tin nằm ở cột/trường nào.
  • Nếu thông tin có pattern cố định như address, phone number hoặc date, pattern-based extraction như regular expressions có thể đủ tốt.
  • Nếu cần trích tên người, tổ chức, quan hệ giữa entities hoặc chi tiết calendar event, thường cần NLP processing sâu hơn.
  • Tagging news and other content: ngoài classify article, search engine/recommendation system còn cần tag các entity quan trọng trong bài.
  • Ví dụ Google News trích people, organizations, locations và events đang xuất hiện trong tin để reader đi thẳng tới news về một entity cụ thể.
  • Chatbots: chatbot cần hiểu query có những thông tin cụ thể nào. Ví dụ câu hỏi về best cafes around Eiffel Tower cần nhận ra Eiffel Tower và cafe, rồi tìm cafe trong phạm vi liên quan.
  • Social media: IE giúp trích thông tin cập nhật nhanh từ tweets, ví dụ traffic updates hoặc disaster relief efforts.
  • Forms and receipts: app ngân hàng/receipt scanning dùng OCR làm bước đầu để đọc chữ từ ảnh, rồi IE để trích trường thông tin cần dùng. Sách không đi sâu OCR vì OCR không nằm trong pipeline NLP của sách.
  • IE Tasks nhấn mạnh IE là một nhóm task có độ khó khác nhau, cùng mục tiêu lớn là extract “knowledge” từ text.
  • Với ví dụ bài báo về Apple, Keyphrase Extraction lấy chủ đề như buyback hoặc stock price.
  • Named Entity Recognition nhận diện Apple là organization và Luca Maestri là person.
  • Named entity disambiguation and linking phân biệt Apple là công ty Apple Inc., không phải trái táo hoặc công ty khác có chữ Apple.
  • Relation Extraction trích quan hệ như Luca Maestri là finance chief của Apple.
  • Event Extraction gom bài này vào event kiểu “Apple buys back stocks” và có thể link với các bài khác nói về cùng event.
  • Temporal information extraction trích time/date, hữu ích cho calendar apps và personal assistants.
  • Template Filling dùng extracted data để điền slot trong template chuẩn, ví dụ weather report hoặc flight announcement.
  • Sách nhấn mạnh IE phụ thuộc domain mạnh nên trong industry thường là hybrid system: rule-based + learning-based. KPE và NER trưởng thành hơn; các task còn lại khó hơn và đôi khi dùng API lớn như Microsoft/Google/IBM.
  • IE thường cần pipeline NLP mịn hơn text classification: có thể cần POS tagging, coreference resolution và model task-specific. Evaluation thường dùng precision, recall, F1.
  • The General Pipeline for IE nhấn mạnh IE cần fine-grained NLP processing hơn Text Classification vì output không chỉ là một label cấp document.
  • Pipeline đi từ raw text → sentence segmentation → word tokenization → POS tagging; từ đó có thể rẽ sang Keyphrase Extraction, Named Entity Recognition, syntactic parsing, coreference resolution, entity disambiguation, Relation Extraction và Event Extraction.
  • Không phải IE task nào cũng cần toàn bộ pipeline. KPE có thể cần ít processing nhất; các task sâu hơn phụ thuộc nhiều vào chất lượng preprocessing trước đó.
  • Keyphrase Extraction trích các keyword/keyphrase nắm “gist” của document; ví dụ Amazon “Read reviews that mention” giúp người dùng lọc review theo cụm được nhiều người nhắc tới.
  • KPE hữu ích cho search/information retrieval, automatic document tagging, recommendation systems và summarization.
  • Hai hướng chính là supervised và unsupervised. Supervised cần corpus có text + keyphrases, tốn công label; unsupervised phổ biến hơn trong real-world KPE vì không cần labeled dataset và thường domain-agnostic hơn.
  • Graph-based KPE biểu diễn words/phrases như nodes trong weighted graph; keyphrase quan trọng là node đủ frequent và connected với nhiều phần khác của text. Sau đó lấy top-N nodes làm keyphrases.
  • Sách minh họa dùng textacy trên spaCy với TextRank và SGRank; khi triển khai có nhiều knob: độ dài n-gram, POS tags giữ/bỏ, preprocessing, và cách loại overlapping n-grams.
  • Implementing KPE trong sách là recipe thực dụng: đọc text → tạo spaCy doc qua textacy → chạy TextRank/SGRank → lấy top keyphrases kèm weights → so sánh output trước khi chọn algorithm.
  • Ví dụ output cho text lịch sử NLP cho thấy TextRank thiên về phrase dài như “natural language processing system”, còn SGRank có thể trả cả phrase ngắn và cụm thời gian như “late 1980”.
  • Caveat production: KPE nhạy với document length, overlapping keyphrases, unwanted word patterns và lỗi text extraction từ PDF/scanned images. Cách thực tế là kết hợp graph-based algorithm với post-processing và domain heuristics.
  • Practical Advice of Implementing KPE: không nên xem output top-N là final ngay. Cần thêm bước cleanup: giới hạn nguồn text nếu document quá dài, de-duplicate phrase gần nhau, filter pattern xấu, và post-process text extraction noise.
  • Nếu document dài, sách gợi ý không nhất thiết dùng full text; có thể dùng phần đầu M% và phần cuối N% vì introduction/conclusion thường chứa summary chính.
  • Với keyphrases overlap, ví dụ một cụm là phần con của cụm khác, có thể chọn các phrase dissimilar hơn bằng similarity measure như cosine similarity.
  • Named Entity Recognition là IE task được thiết kế để tìm named entities trong text, khác KPE vì KPE có thể vô tình bắt được entity names nhưng không nhắm cụ thể vào entity.
  • Ví dụ search query “Where was Albert Einstein born?”: hệ thống cần hiểu Albert Einstein là person trước khi tìm place of birth như Ulm, Germany.
  • NER nhận diện entities như person, location, organization và các specialized strings như money expressions, dates, products, law/article names/numbers.
  • NER là bước quan trọng trong Information Extraction Pipeline; Relation Extraction và Event Extraction thường cần NER trước để biết các entity mentions.
  • NER cũng hữu ích trong machine translation vì names không nhất thiết phải dịch khi dịch câu.
  • Building an NER System trong sách đưa ra 3 hướng: gazetteer lookup, rule-based NER, và ML-based NER.
  • [[Gazetteer]] là danh sách lớn các tên person/organization/location liên quan domain của mình; nếu coverage cao thì đây là điểm bắt đầu rất tốt khi chưa có hệ thống NER sẵn.
  • Điểm yếu của gazetteer là xử lý tên mới, update database định kỳ, và alias như USA với United States.
  • Rule-based NER đi xa hơn lookup table bằng pattern trên token và POS tags, ví dụ pattern NNP was born gợi ý proper noun đó là person. Sách nhắc RegexNER của Stanford NLP và EntityRuler của spaCy cho hướng này.
  • Hướng thực tế hơn là train ML model cho NER. Điểm khác với text classification là NER là bài toán Sequence Labeling: dự đoán nhãn cho từ hiện tại phụ thuộc vào context xung quanh.
  • Ví dụ Washington chỉ phân biệt được là person hay location khi nhìn cả context như “Washington is a rainy state”.
  • Sách nhắc CRF là một sequence classifier phổ biến cho NER; notebook dùng sklearn-crfsuite với feature dựa trên word và POS tags trên dataset CONLL-03.
  • Dữ liệu train NER thường ở dạng BIO notation: B là beginning, I là inside, O là non-entity. Ví dụ Peter là B-PER, Such là I-PER; entity một từ như Essex hoặc Headingley chỉ cần B-*.
  • Quy trình train NER vẫn bám khung quen thuộc của Chapter 04: load dataset → extract features → train classifier → evaluate on test set.

Viết lại bằng lời của tôi

  • IE là bước biến text từ “đọc được” thành “dùng được”: entity để tag/search, slot để chatbot hiểu yêu cầu, event để theo dõi tình hình, field để nhập vào hệ thống.
  • Text classification trả lời “đoạn này thuộc loại gì?”, còn IE hỏi “trong đoạn này có những mẩu thông tin nào cần lấy ra?”.
  • Ứng dụng thực tế của IE thường không chỉ là model; nó là pipeline nối từ text thô/OCR/social stream tới dữ liệu có cấu trúc.
  • IE Tasks giống các tầng hiểu khác nhau: từ keyword đơn giản, tới entity, entity identity, relation, event, rồi template có schema. Càng đi xa khỏi keyword/NER thì càng cần context, domain rules và model chuyên biệt hơn.
  • IE pipeline giống một thang phân tích: càng cần hiểu quan hệ/sự kiện thì càng phải biết nhiều cấu trúc ngôn ngữ hơn, nên lỗi ở bước trước có thể lan xuống output cuối.
  • KPE không “hiểu” sâu như relation/event extraction; nó giống bước chọn cụm từ đại diện để người dùng hoặc hệ thống downstream nắm nhanh document đang xoay quanh chuyện gì. Giá trị thực tế nằm nhiều ở ranking và cleanup sau extraction.
  • Khi implement KPE, phần quan trọng không chỉ là gọi textrank() hay sgrank(), mà là thiết kế vòng thử nghiệm: chọn preprocessing, xem output có trùng lặp/nhiễu không, rồi thêm heuristic cho domain.
  • KPE production giống một bài toán ranking + hygiene hơn là “extract xong là xong”: graph-based algorithm cho candidate tốt, còn chất lượng cuối đến từ post-processing và domain heuristics.
  • NER giống bước “đánh dấu các đối tượng có tên” trong text. Nếu KPE giúp biết document nói về cụm gì, NER giúp biết document đang nhắc tới ai, nơi nào, tổ chức nào, ngày nào hoặc object cụ thể nào để các bước IE sâu hơn dùng tiếp.
  • Có thể hiểu 3 mức xây NER như sau: gazetteer là nhớ tên đã biết, rule-based là nhìn pattern ngôn ngữ, còn sequence labeling là để model học quyết định từ context. Càng đi xuống dưới thì setup nặng hơn nhưng khả năng tổng quát hóa tốt hơn.

Việc cần làm