2012-04-23 20 views
8

Tôi chỉ tự hỏi việc sử dụng n-grams (n> 3) là gì (và tần suất xuất hiện của chúng) xem xét chi phí tính toán trong tính toán chúng. Có bất kỳ ứng dụng nào mà các bigram hoặc trigram đơn giản là không đủ?Khi nào là n-gam (n> 3) quan trọng như trái ngược với chỉ bigrams hoặc trigram?

Nếu vậy, công nghệ tiên tiến trong khai thác n-gram là gì? Bất kỳ đề xuất? Tôi biết những điều sau đây:

+1

Điều này có thể không đạt đến mức độ thông tin Chú thích đang tìm kiếm, nhưng video này từ Pycon 2012 thực hiện một công việc khá tốt giải thích những điều cơ bản về tính toán n-gram trong python (và sử dụng chúng để xây dựng một công cụ tìm kiếm): http://pyvideo.org/video/715/building-a-python-based-search-engine. Đối với bất cứ ai khác tình cờ về câu hỏi này. – Wilduck

+0

"Chi phí tính toán" của ngrams tính toán là không đáng kể: Bạn có thể thực hiện nó trong một lần truyền qua kho dữ liệu của bạn. Ngay cả khi lưu trữ các ngram cao cấp cũng không phải là một vấn đề lớn. Chi phí thực tế là cho n lớn hơn, bạn cần một kho dữ liệu lớn hơn và lớn hơn để khắc phục vấn đề thưa thớt. – alexis

+0

@alexis: Sẽ rất tuyệt nếu bạn có thể cung cấp thêm thông tin. Cụ thể, một cái gì đó liên quan đến vấn đề sparsity, bất kỳ nghiên cứu cho thấy "tính toán trên không tính toán của n-gram là không đáng kể"? Cảm ơn bạn. – Legend

Trả lời

3

Tôi không quen thuộc với một việc tốt của các thẻ liệt kê ở đây, tuy nhiên n gram (khái niệm trừu tượng) thường hữu ích liên quan đến các mô hình thống kê. Kết quả là, dưới đây là một số ứng dụng không bị giới hạn chỉ đối với bigram và trigram:

  • Thuật toán nén (đặc biệt PPM), nơi phụ thuộc vào lượng dữ liệu có sẵn để cung cấp ngữ cảnh cụ thể.
  • xấp xỉ chuỗi phù hợp (ví dụ như BLAST cho phù hợp với trình tự gen)
  • mô hình Đoán trước (ví dụ như máy phát điện tên)
  • Nhận dạng tiếng nói (âm vị gram được sử dụng để giúp đánh giá khả năng xảy ra khả năng cho âm vị trải qua sự công nhận hiện nay)

Đó là những cái nằm ngoài đỉnh đầu của tôi, nhưng có nhiều hơn nữa được liệt kê on Wikipedia.

Theo như "khai thác n-gram" hiện đại, không có ý tưởng. N-gram "khai thác" là một nỗ lực adhoc để tăng tốc độ quy trình nhất định trong khi vẫn duy trì những lợi ích của mô hình kiểu n-gram. Tóm lại, "nhà nước-of-the-nghệ thuật" phụ thuộc vào những gì bạn đang cố gắng để làm. Nếu bạn đang tìm kiếm kết hợp mờ hoặc nhóm mờ, nó phụ thuộc vào loại dữ liệu bạn đang kết hợp/nhóm. (Ví dụ: địa chỉ đường phố sẽ rất khác với kết hợp mờ so với tên đầu tiên.)

3

Một cách độc đáo để suy nghĩ về thứ tự cao hơn n-grams có thể được thực hiện bằng cách kết nối với một số không bình thường autocorrelation function của một tín hiệu với chính nó. Một kho văn bản 2-gram sẽ đo lường sự tương quan của một từ với một "thời gian" -lag của một từ duy nhất, trong khi 3-gram có thể cung cấp cho chúng ta thông tin về thời gian "-lag" của hai bước. Thứ tự cao hơn n-gram đưa ra thước đo phân bố xác suất của một kho dữ liệu cụ thể (có thể là Moby Dick hoặc DNA của con người). Theo cách này, nếu một n-gram khác với giá trị kỳ vọng rỗng, thì có thông tin thống kê hữu ích cho giá trị n đó.

2

Ngoài Kaganar của câu trả lời:

Bất kỳ loại stylometric analysis (ví dụ, tác giả hồ sơ dựa trên văn bản phong cách, hay, cố gắng phát hiện các kỷ nguyên của một văn bản) sẽ đòi hỏi còn n-gram cho phân tích cú pháp nông. Thông thường các phương pháp tiếp cận như vậy được bổ sung bằng phân tích cú pháp cú pháp sâu dựa trên PCFG, TAG, v.v.

3

Tôi không nghĩ câu hỏi của bạn được đặt đúng: Ngram là một công cụ, không giải quyết được vấn đề, vì vậy không có " trạng thái của nghệ thuật "trong ngrams.Như @Hooked đã chỉ ra, một ngram là một loại hàm tương quan tự động (hoặc "hàm tự động"). Vì vậy, những gì bạn thực sự muốn biết là nếu có bất kỳ vấn đề mà các nhà nước của các giải pháp nghệ thuật liên quan đến ngrams dài.

Đối với các ứng dụng số như mô hình tài chính hoặc thời tiết phù hợp hoặc nhận dạng giọng nói, bạn chắc chắn sẽ sử dụng vectơ kích thước > 3. Ví dụ: Mô hình Ẩn Markov tự động kích hoạt phù hợp với chức năng thay thế của các số đo n cuối cùng, trong đó n có thể lớn vừa phải nếu các trạng thái trong quá khứ có liên quan để dự đoán tương lai.

Nhưng tất cả các ví dụ của bạn đều liên quan đến từ ngram và tôi không thể nghĩ ra bất kỳ tác phẩm nào tìm thấy n> 3 hữu ích trong miền đó. Tôi không nghĩ rằng đó là một câu hỏi về chi phí tính toán hoặc tìm đủ dữ liệu đào tạo: Tương quan tự động bề ngoài trong ngôn ngữ dường như suy ra sau 3 từ hoặc lâu hơn. Ví dụ ngẫu nhiên: this article cố gắng diễn giải lại định luật Zipf về nội dung thông tin dựa trên ngram. Họ xem xét n tối đa 4, nhưng có được mối tương quan tổng thể cao nhất đối với số lượng trigram.

Tôi không có ý nói rằng n> 3không hữu ích; nhưng quan sát của bạn rằng nó dường như không xuất hiện nhiều cũng được thành lập.

Nhưng lưu ý rằng sự phức tạp của tính ngrams trong một văn bản không phải là một vấn đề: Nếu bạn có một corpus tokenized chiều dài L, bạn có thể thu thập tất cả ngrams của corpus như thế này:

for i in range(0, L-n): 
     tuple = corpus[i:i+n] 
     ngrams[tuple] += 1 

Như bạn có thể thấy điều này chỉ yêu cầu O (L) các bước, tức là tuyến tính có kích thước tuyến tính và không phát triển với n. Vì vậy, thu thập ngrams của bất kỳ kích thước là một vấn đề không. Nhưng số lượng ngrams có thể nhanh chóng nấm. Để minh họa, nếu bạn phân biệt 32 thẻ thư (chữ cái và một số dấu chấm câu), có 1024 chữ cái lớn nhưng 1048576 tetragram. Để tìm đủ số lượng các bảng tần số, bạn cần thêm văn bản theo cấp số nhân.

Đối với từ ngrams, vấn đề thưa thớt thậm chí còn tệ hơn, vì bạn không chỉ có nhiều hơn hơn 32 mã thông báo khác nhau, nhưng kích thước từ vựng tăng (chậm) với kích thước tài liệu: tài sản "đuôi dài" nổi tiếng . Vì vậy, dữ liệu của bạn sẽ thưa thớt (ngay cả đối với số lượng nhỏ n) cho dù bạn thu thập được bao nhiêu. Sau đó, bạn sẽ cần phải phù hợp với các mô hình thống kê phức tạp, có chi phí tính toán phụ thuộc vào số lượng ngram riêng biệt.

Kết quả là, thưa thớt luôn là một vấn đề trong các ứng dụng ngram từ (do đó "làm mịn" thường là cần thiết). Nếu bạn google "ngram thưa thớt" bạn sẽ tìm thấy một tấn tài liệu tham khảo.

0

Bạn cũng có thể sử dụng n> 3 kiểu ngôn ngữ nếu datset của bạn rất lớn.

+0

phải là nhận xét – Robert

Các vấn đề liên quan