Thursday, November 7, 2019

TF-IDF được hiểu như thế nào?

tf–idf, viết tắt của thuật ngữ tiếng Anh term frequency – inverse document frequency, của một từ là một con số thu được qua thống kê thể hiện mức độ quan trọng của từ này trong một văn bản, mà bản thân văn bản đang xét nằm trong một tập hợp các văn bản.

TF là gì?

TF: Term Frequency(Tần suất xuất hiện của từ) là số lần từ xuất hiện trong văn bản. Vì các văn bản có thể có độ dài ngắn khác nhau nên một số từ có thể xuất hiện nhiều lần trong một văn bản dài hơn là một văn bản ngắn. Như vậy, term frequency thường được chia cho độ dài văn bản( tổng số từ trong một văn bản).
tf
Trong đó:
  • tf(t, d): tần suất xuất hiện của từ t trong văn bản d
  • f(t, d): Số lần xuất hiện của từ t trong văn bản d
  • max({f(w, d) : w ∈ d}): Số lần xuất hiện của từ có số lần xuất hiện nhiều nhất trong văn bản d

IDF là gì?

IDF: Inverse Document Frequency(Nghịch đảo tần suất của văn bản), giúp đánh giá tầm quan trọng của một từ . Khi tính toán TF , tất cả các từ được coi như có độ quan trọng bằng nhau. Nhưng  một số từ như “is”, “of” và “that” thường xuất hiện rất nhiều lần nhưng độ quan trọng là không cao. Như thế chúng ta cần giảm độ quan trọng của những từ này xuống.

idf
Trong đó:
  • idf(t, D): giá trị idf của từ t trong tập văn bản
  • |D|: Tổng số văn bản trong tập D
  • |{d ∈ D : t ∈ d}|: thể hiện số văn bản trong tập D có chứa từ t.
  • Cơ số logarit trong công thức này không thay đổi giá trị idf của từ mà chỉ thu hẹp khoảng giá trị của từ đó. Vì thay đổi cơ số sẽ dẫn đến việc giá trị của các từ thay đổi bởi một số nhất định và tỷ lệ giữa các trọng lượng với nhau sẽ không thay đổi. (nói cách khác, thay đổi cơ số sẽ không ảnh hưởng đến tỷ lệ giữa các giá trị IDF). Việc sử dụng logarit nhằm giúp giá trị tf-idf của một từ nhỏ hơn, do chúng ta có công thức tính tf-idf của một từ trong 1 văn bản là tích của tf và idf của từ đó.
    Cụ thể, chúng ta có công thức tính tf-idf hoàn chỉnh như sau: tfidf(t, d, D) = tf(t, d) x idf(t, D)
    Khi đó:
    Những từ có giá trị TF-IDF cao là những từ xuất hiện nhiều trong văn bản này, và xuất hiện ít trong các văn bản khác. Việc này giúp lọc ra những từ phổ biến và giữ lại những từ có giá trị cao (từ khoá của văn bản đó).
  • (Nguồn copy)

Friday, October 18, 2019

Bộ máy tìm kiếm của Google là như thế nào


Cấu trúc tìm kiếm của bộ máy làm việc của google

Search Engine gồm 3 bộ phận chính. Đó là Search ServerIndexSearch Backend.
Trong đó:

·       Search Server đảm nhiệm việc trả về kết quả tìm kiếm cho người dùng.
·       Seach Backend đảm nhiệm việc thu thập thông tin toàn bộ website trên toàn thế giới.
·       Index giống như 1 cơ sở dữ liệu được sử dụng bởi Search Server và Search Backend.
Search Server là trả về kết quả tìm kiếm của người dùng nhanh nhất có thể.Vì nếu không trả về tức thì mà mất 10s, 1 phút, 2 phút mới trả về kết quả thì quả thực sẽ không thể trở thành 1 công cụ tìm kiếm được.
Search Backend thì khác hoàn toàn với Search Server. Cho dù xử lí mất 5p, 10p hay 1 tiếng đi chăng nữa thì cũng không thành vấn đề. Miễn là nó thu thập dữ liệu từ toàn bộ website trên toàn thế giới và tạo ra Index mà Search Server dễ dùng là được.
Index là lưu thông tin toàn bộ dữ liệu đã được thu thập từ Search Backend. Khi người dùng tìm kiếm, Search Server chỉ cần tìm trong Index và trả về kết quả là xong. Chứ không phải lúc đó mới bắt đầu đi thu thập dữ liệu và trả về.
Về cơ bản thì Search Server nó cũng không khác gì Web Server cả. Nó chủ yếu đảm nhiệm những nhiệm vụ chính sau:
·       Quản lí truyền thông với người dùng
·       Phân tích request từ người dùng
·       Tìm kiếm thông tin cần thiết từ Index
·       Trả kết quả về cho người dùng
Trong trường hợp mà Index không có kết quả nào, thì khi đó Search Search trả về kết quả là “Hiện tại không tìm thấy kết quả nào” đến cho người dùng.
Do đó việc tổ chức dữ liệu trong Index để làm sao mà Search Server có thể lấy nhanh nhất là 1 điều vô cùng quan trọng.

Crawling là có nhiệm vụ đi thu thập toàn bộ trang web trên toàn thế giới về để xử lý. Vì công việc này vô cùng mất thời gian nên nó đã phân tách ra thành nhiều bộ phận con hơn để xử lý, đó là Crawler.
Hiện nay trên toàn thế giới chắc phải có đến tỉ tỉ website mất. Vậy mà Google đi thu thập từng đó website về để phục vụ cho người dùng thì quả thực quá kinh khủng.
Nhưng vì quá trình crawl, thu thập đến việc tạo Index là vô cùng mất thời gian. Nên bạn nào có blog riêng mà sau khi viết bài xong, search trên Google nó không ra là vì thế. Phải đợi Google crawl đến trang web của mình thì lúc đó các bạn search trên Google mới ra được.
Những trang web mà Crawler thu thập sẽ lưu tạm thời vào 1 nơi giống như cơ sở dữ liệu, cái này được gọi là Repository (kho).
Bộ phận tạo Index (Index Creation) sẽ lấy trang web từ Repository ra để phân tích, xử lý và cuối cùng là tạo ra Index để cho Search Server dùng.
Đối với Search Engine thì đây là 1 công việc vô cùng vô cùng mất thời gian. Chính vì luôn có thằng tạo trước dữ liệu như vậy mà đã làm cho Google luôn trả về kết quả ngay như tức thì.
Vậy khi nào thì Google sẽ crawl trang web của mình?
Với trang web nào nhiều người yêu thích, nội dung chất lượng thì luôn luôn được ưu tiên crawl trước. Những trang web nào nội dung kém chất lượng thì sẽ mất tầm 3 đến 1 tuần mới được crawl.
Làm thế nào để thúc Google crawl trang của mình?
Google cung cấp 1 trang để gửi yêu cầu thực hiện crawl. Chỉ cần vào đó đăng kí tên website, gửi nội dung trang muốn crawl là được. Còn nếu không thực hiện thì mình khẳng định sẽ mất tầm từ 3 đến 7 ngày mới được crawl.
Index là linh hồn của việc tìm kiếm

Nhiệm vụ chính của Index là lưu dữ liệu 1 cách an toàn và giúp Search Server trả về kết quả nhanh nhất có thể. Để dễ hình dùng thì chúng ta có thể xem Index như là 1 Database.
Trong Index có rất nhiều thông tin, phù hợp với nhiều mục đích tìm kiếm khác nhau.
Ở trong 1 Search Engine thì Index chính là 1 “cấu trúc dữ liệu” mà chỉ có Search Engine mới có thể hiểu được.
Nên việc thiết kế Index như nào, tổ chức dữ liệu ra sao để cho Search Server có thể query và trả về kết quả nhanh nhất có thể là điều vô cùng quan trọng. Và bài hôm nay mình sẽ không đi sâu vào giải thích cách tổ chức dữ liệu của Index nữa. 
(Sưu tầm: https://techtalk.vn)



Sunday, January 31, 2016

DẤU HIỆU CHIA HÉT CHO CÁC SỐ

1-Dấu hiệu chia hết cho 2: Chữ số tận cùng là các chữ số: 0;2;4;6;8

Monday, January 25, 2016

Quy tắc tính xác suất

a)    Biến cố hợp
       Cho hai biến cố AABB. Biến cố “AA hoặc BB xảy ra”, kí hiệu là ABAB, được gọi là hợp của hai biến cố A và B.