Token hóa
Mã thông báo là gì ?? Nói một cách ngắn gọn, Nó chia văn bản thành các từ hoặc câu…
Ở đây chúng tôi sẽ giới thiệu về các mã thông báo khác nhau mà chúng tôi có thể sử dụng trong NLP ………
- khoảng trắng
text = 'Earth was born around 4.54 billion years ago.'
print(text.split())
# output
# ['Earth', 'was', 'born', 'around', '4.54', 'billion', 'years', 'ago.']
2. Phân chia cụ thể
Tương tự như khoảng trắng nhưng ở đây chúng tôi cung cấp splitbất kỳ bộ chia nào chúng tôi muốn
text = 'Egypt, a country linking northeast Africa with the Middle East, dates to the time of the pharaohs.'
print(text.split(','))
# output
# ['Egypt', ' a country linking northeast Africa with the Middle East', ' dates to the time of the pharaohs.']
3. NLTK
NLTK là một nền tảng hàng đầu để xây dựng các chương trình Python hoạt động với dữ liệu ngôn ngữ của con người. Có rất nhiều mã thông báo chúng tôi có thể sử dụng
l) word_toknizer: Nó giải quyết vấn đề trong hàm tách:
ll) sent_tokenize: Nó sử dụng văn bản phân tách làm mô hình mà nó đã đào tạo trước đó.
lll) wordpunct_tokenize: Ở đây nó tách tất cả các từ và dấu câu.
lV) TreebankWordTokenizer: Mặt khác, nó phân tách văn bản thành các dấu câu này ?!.,;, nó là một loạt các quy tắc chung cho các từ tiếng Anh.
V) TweetTokenizer: Nó tách văn bản thành các dấu chấm câu thành ?!.,;biểu tượng cảm xúc
Vl) MWATokenizer: Ở đây chúng tôi có thể thêm mã thông báo theo ý muốn vì mã thông báo này cung cấp add_mwecho phép chúng tôi thực hiện điều đó
4. TextBlob
TextBlob là thư viện Python (2 và 3) để xử lý dữ liệu văn bản . Nó cung cấp một API đơn giản để đi sâu vào các tác vụ xử lý ngôn ngữ tự nhiên (NLP) phổ biến như gắn thẻ một phần của bài phát biểu, trích xuất cụm từ danh từ, phân tích cảm xúc, phân loại, dịch thuật, v.v.
from textblob import TextBlob
text="""But I'm glad you'll see me as I am. Above all, I wouldn't want people to think that I want to
prove anything. I don't want to prove anything, I just want to live; to cause no evil to anyone but myself.
I have that right, haven't I? Leo Tolstoy """
blob_object= TextBlob(text) # Word tokenization of the text
text_words = blob_object.words # To see all tokens
print(text_words) # To count the number of tokens
print(len(text_words))
# output
# ['But', 'I', "'m", 'glad', 'you', "'ll", 'see', 'me', 'as', 'I', 'am', 'Above', 'all', 'I', 'would', "n't", 'want', 'people', 'to', 'think', 'that', 'I', 'want', 'to', 'prove', 'anything', 'I', 'do', "n't", 'want', 'to', 'prove', 'anything', 'I', 'just', 'want', 'to', 'live', 'to', 'cause', 'no', 'evil', 'to', 'anyone', 'but', 'myself', 'I', 'have', 'that', 'right', 'have', "n't", 'I', 'Leo', 'Tolstoy']
# 55
5. không gian
spaCy là một thư viện mã nguồn mở miễn phí dành cho Xử lý ngôn ngữ tự nhiên trong Python . Nó có tính năng NER, gắn thẻ POS, phân tích cú pháp phụ thuộc, vectơ từ, v.v.
6. Thần đồng
Gensim: Đây là một thư viện mã nguồn mở bằng python do Radim Rehurek viết, được sử dụng trong mô hình hóa chủ đề không giám sát và xử lý ngôn ngữ tự nhiên . Nó được thiết kế để trích xuất các chủ đề ngữ nghĩa từ các tài liệu. Nó có thể xử lý các bộ sưu tập văn bản lớn.
7. Máy ảnh
Keras là thư viện mã nguồn mở và là một trong những framework deep learning đáng tin cậy nhất. Để thực hiện mã thông báo, chúng tôi sử dụng phương thức: text_to_word_sequence từ lớp Class Keras.preprocessing.text. Điều tuyệt vời về Keras là chuyển đổi bảng chữ cái thành chữ thường trước khi mã hóa nó, điều này có thể tiết kiệm thời gian khá nhiều.
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.text import text_to_word_sequence
text = "Two things are infinite: the universe and human stupidity; and I'm not sure about the universe. #Albert Einstein"
tokinzer = Tokenizer(num_words=20) # as recommended we put here the max text length we have
tokinzer.fit_on_texts(text)
tokens = text_to_word_sequence(text)
print(tokens)
# output
# ['two', 'things', 'are', 'infinite', 'the', 'universe', 'and', 'human', 'stupidity', 'and', "i'm", 'not', 'sure', 'about', 'the', 'universe', '', 'albert', 'einstein']
8. Mã thông báo dựa trên từ phụ
Mã thông báo phổ biến là mã thông báo dựa trên từ phụ, đây là giải pháp giữa mã thông báo dựa trên từ và ký tự. Ý tưởng chính là giải quyết các vấn đề mà mã thông báo dựa trên từ gặp phải (kích thước từ vựng rất lớn, số lượng lớn mã thông báo OOV và nghĩa khác nhau của các từ rất giống nhau) và mã thông báo dựa trên ký tự (chuỗi rất dài và mã thông báo riêng lẻ ít ý nghĩa hơn).
Thuật toán mã thông báo dựa trên từ phụ sử dụng các nguyên tắc sau.
- Không chia các từ được sử dụng thường xuyên thành các từ phụ nhỏ hơn.
- Tách các từ hiếm thành các từ phụ có nghĩa nhỏ hơn.
thử thách
Hãy thảo luận về những thách thức và hạn chế của nhiệm vụ mã thông báo.
Nói chung, nhiệm vụ này được sử dụng cho văn bản văn bản được viết bằng tiếng Anh hoặc tiếng Pháp trong đó các ngôn ngữ này phân tách các từ bằng cách sử dụng khoảng trắng hoặc dấu chấm câu để xác định ranh giới của câu. Thật không may, phương pháp này không thể áp dụng cho các ngôn ngữ khác như tiếng Trung, tiếng Nhật, tiếng Hàn, tiếng Thái, tiếng Hindi, tiếng Urdu, tiếng Tamil và các ngôn ngữ khác. Vấn đề này tạo ra nhu cầu phát triển một công cụ mã thông báo chung kết hợp tất cả các ngôn ngữ.
Một hạn chế khác là mã hóa các văn bản tiếng Ả Rập vì tiếng Ả Rập có hình thái phức tạp như một ngôn ngữ. Ví dụ: một từ tiếng Ả Rập có thể chứa tối đa sáu mã thông báo khác nhau như từ “عقد” (eaqad).
Phần kết luận
Chúng tôi đã nói về mã thông báo và rất nhiều kỹ thuật mà chúng tôi có thể sử dụng vì chúng tôi thấy có nhiều loại nghiên cứu được thực hiện trong lĩnh vực này và nó đang phát triển và có nhiều thách thức phải đối mặt với NLP nhưng chúng tôi sẽ thấy những vấn đề này sẽ được giải quyết trong tương lai.
bạn có thể xem mã trong liên kết này

![Dù sao thì một danh sách được liên kết là gì? [Phần 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































