Mã hóa tệp Python
Bạn có bị mê hoặc bởi lượng dữ liệu văn bản có sẵn trên internet không? . Và đó có thể là một bối cảnh phức tạp để điều hướng trong học máy Show
Vậy làm thế nào chúng ta có thể thao tác và làm sạch dữ liệu văn bản này để xây dựng một mô hình? Giải quyết vấn đề NLP là một quá trình gồm nhiều giai đoạn. Trước tiên, chúng ta cần làm sạch dữ liệu văn bản phi cấu trúc trước khi có thể nghĩ đến việc chuyển sang giai đoạn lập mô hình. Làm sạch dữ liệu bao gồm một số bước chính
Trong bài viết này, chúng ta sẽ nói về bước đầu tiên – token hóa. Trước tiên, chúng ta sẽ xem mã thông báo là gì và tại sao nó lại cần thiết trong NLP. Sau đó, chúng tôi sẽ xem xét sáu cách duy nhất để thực hiện mã thông báo trong Python Bài viết này không có điều kiện tiên quyết. Bất kỳ ai quan tâm đến NLP hoặc khoa học dữ liệu đều có thể theo dõi. Nếu bạn đang tìm kiếm một nguồn tài nguyên đầu cuối để học NLP, bạn nên xem khóa học toàn diện của chúng tôi Mục lục
Tokenization trong NLP là gì?Tokenization là một trong những nhiệm vụ phổ biến nhất khi làm việc với dữ liệu văn bản. Nhưng thuật ngữ 'tokenization' thực sự có nghĩa là gì?
Kiểm tra hình ảnh dưới đây để hình dung định nghĩa này Các mã thông báo có thể là từ, số hoặc dấu chấm câu. Trong mã thông báo, các đơn vị nhỏ hơn được tạo bằng cách định vị các ranh giới từ. Đợi đã - ranh giới từ là gì? Đây là điểm kết thúc của một từ và bắt đầu của từ tiếp theo. Những mã thông báo này được coi là bước đầu tiên để tạo gốc và từ vựng (giai đoạn tiếp theo trong quá trình tiền xử lý văn bản mà chúng tôi sẽ đề cập trong bài viết tiếp theo) Khó? . Thế kỷ 21 khiến việc học tập và tiếp cận tri thức trở nên dễ dàng. Bất kỳ Khóa học xử lý ngôn ngữ tự nhiên nào cũng có thể được sử dụng để học chúng một cách dễ dàng Tại sao Mã thông báo được yêu cầu trong NLP?Tôi muốn bạn nghĩ về ngôn ngữ tiếng Anh ở đây. Chọn bất kỳ câu nào bạn có thể nghĩ ra và giữ nó trong đầu khi bạn đọc phần này. Điều này sẽ giúp bạn hiểu tầm quan trọng của mã thông báo theo cách dễ dàng hơn nhiều Trước khi xử lý một ngôn ngữ tự nhiên, chúng ta cần xác định các từ cấu thành một chuỗi ký tự. Đó là lý do tại sao token hóa là bước cơ bản nhất để tiến hành với NLP (dữ liệu văn bản). Điều này rất quan trọng vì ý nghĩa của văn bản có thể dễ dàng được giải thích bằng cách phân tích các từ có trong văn bản Hãy lấy một ví dụ. Hãy xem xét chuỗi dưới đây “Đây là một con mèo. ” Bạn nghĩ điều gì sẽ xảy ra sau khi chúng tôi thực hiện mã thông báo trên chuỗi này? Có rất nhiều cách sử dụng để làm điều này. Chúng tôi có thể sử dụng biểu mẫu được mã hóa này để
Và như thế. Chúng tôi có thể trích xuất nhiều thông tin hơn mà chúng tôi sẽ thảo luận chi tiết trong các bài viết trong tương lai. Hiện tại, đã đến lúc đi sâu vào nội dung chính của bài viết này – các phương pháp thực hiện mã thông báo khác nhau trong NLP Các phương pháp để thực hiện mã thông báo bằng PythonChúng tôi sẽ xem xét sáu cách độc đáo để chúng tôi có thể thực hiện mã thông báo trên dữ liệu văn bản. Tôi đã cung cấp mã Python cho từng phương pháp để bạn có thể làm theo trên máy của mình 1. Token hóa bằng hàm split() của PythonHãy bắt đầu với phương thức split() vì nó là phương thức cơ bản nhất. Nó trả về một danh sách các chuỗi sau khi ngắt chuỗi đã cho bằng dấu phân cách đã chỉ định. Theo mặc định, split() ngắt chuỗi ở mỗi khoảng trắng. Chúng ta có thể thay đổi dấu phân cách thành bất cứ thứ gì. Hãy cùng kiểm tra nào Mã thông báo từ Output : ['Founded', 'in', '2002,', 'SpaceX’s', 'mission', 'is', 'to', 'enable', 'humans', 'to', 'become', 'a', 'spacefaring', 'civilization', 'and', 'a', 'multi-planet', 'species', 'by', 'building', 'a', 'self-sustaining', 'city', 'on', 'Mars.', 'In', '2008,', 'SpaceX’s', 'Falcon', '1', 'became', 'the', 'first', 'privately', 'developed', 'liquid-fuel', 'launch', 'vehicle', 'to', 'orbit', 'the', 'Earth.'] Mã thông báo câu Điều này tương tự như mã thông báo từ. Sau đây, chúng ta nghiên cứu cấu tạo câu trong bài phân tích. Một câu thường kết thúc bằng dấu chấm (. ), vì vậy chúng ta có thể sử dụng “. ” làm dấu phân cách để ngắt chuỗi Output : ['Founded in 2002, SpaceX’s mission is to enable humans to become a spacefaring civilization and a multi-planet \nspecies by building a self-sustaining city on Mars', 'In 2008, SpaceX’s Falcon 1 became the first privately developed \nliquid-fuel launch vehicle to orbit the Earth.'] Một nhược điểm lớn của việc sử dụng phương thức split() của Python là chúng ta chỉ có thể sử dụng một dấu tách tại một thời điểm. Một điều khác cần lưu ý - trong mã thông báo từ, split() không coi dấu chấm câu là mã thông báo riêng 2. Token hóa bằng Biểu thức chính quy (RegEx)Đầu tiên, hãy hiểu biểu thức chính quy là gì. Về cơ bản, nó là một chuỗi ký tự đặc biệt giúp bạn khớp hoặc tìm các chuỗi hoặc bộ chuỗi khác bằng cách sử dụng chuỗi đó làm mẫu Chúng ta có thể sử dụng thư viện re trong Python để làm việc với biểu thức chính quy. Thư viện này được cài đặt sẵn trong gói cài đặt Python Bây giờ, hãy thực hiện mã hóa từ và mã hóa câu theo RegEx Mã thông báo từ Mã Python Ở đó. Hàm findall() tìm tất cả các từ khớp với mẫu được truyền vào nó và lưu nó vào danh sách “ Output : ['Founded in 2002, SpaceX’s mission is to enable humans to become a spacefaring civilization and a multi-planet \nspecies by building a self-sustaining city on Mars', 'In 2008, SpaceX’s Falcon 1 became the first privately developed \nliquid-fuel launch vehicle to orbit the Earth.']4” đại diện cho “bất kỳ ký tự từ nào” thường có nghĩa là chữ và số (chữ cái, số) và dấu gạch dưới (_). '+' có nghĩa là bất kỳ số lần nào. Vì vậy, [\w’]+ báo hiệu rằng mã sẽ tìm thấy tất cả các ký tự chữ và số cho đến khi gặp bất kỳ ký tự nào khác Để thực hiện mã thông báo câu, chúng ta có thể sử dụng lại. chức năng tách (). Điều này sẽ chia văn bản thành các câu bằng cách chuyển một mẫu vào đó Output : ['Founded in 2002, SpaceX’s mission is to enable humans to become a spacefaring civilization and a multi-planet \nspecies by building a self-sustaining city on Mars.', 'In 2008, SpaceX’s Falcon 1 became the first privately developed \nliquid-fuel launch vehicle to orbit the Earth.'] Ở đây, chúng ta có lợi thế hơn so với phương thức split() vì chúng ta có thể chuyển nhiều dấu phân cách cùng một lúc. Trong đoạn mã trên, chúng tôi đã sử dụng lại. compile() trong đó chúng tôi đã thông qua [. ?. ]. Điều này có nghĩa là các câu sẽ tách ra ngay khi gặp bất kỳ ký tự nào trong số này Quan tâm đến việc đọc thêm về RegEx? 3. Token hóa bằng NLTKBây giờ, đây là một thư viện mà bạn sẽ đánh giá cao khi làm việc nhiều hơn với dữ liệu văn bản. NLTK, viết tắt của Natural Language ToolKit, là một thư viện được viết bằng Python để xử lý ngôn ngữ tự nhiên tượng trưng và thống kê Bạn có thể cài đặt NLTK bằng mã bên dưới
NLTK chứa một mô-đun có tên tokenize() phân loại thành hai danh mục phụ
Hãy xem từng cái một Mã thông báo từ Output: ['Founded', 'in', '2002', ',', 'SpaceX', '’', 's', 'mission', 'is', 'to', 'enable', 'humans', 'to', 'become', 'a', 'spacefaring', 'civilization', 'and', 'a', 'multi-planet', 'species', 'by', 'building', 'a', 'self-sustaining', 'city', 'on', 'Mars', '.', 'In', '2008', ',', 'SpaceX', '’', 's', 'Falcon', '1', 'became', 'the', 'first', 'privately', 'developed', 'liquid-fuel', 'launch', 'vehicle', 'to', 'orbit', 'the', 'Earth', '.'] Lưu ý cách NLTK coi dấu câu là một mã thông báo? Mã thông báo câu Output: ['Founded in 2002, SpaceX’s mission is to enable humans to become a spacefaring civilization and a multi-planet \nspecies by building a self-sustaining city on Mars.', 'In 2008, SpaceX’s Falcon 1 became the first privately developed \nliquid-fuel launch vehicle to orbit the Earth.'] 4. Token hóa bằng thư viện spaCyTôi yêu thư viện spaCy. Tôi không thể nhớ lần cuối cùng tôi không sử dụng nó khi tôi đang thực hiện một dự án NLP. Nó chỉ là hữu ích spaCy là một thư viện nguồn mở dành cho Xử lý ngôn ngữ tự nhiên (NLP) nâng cao. Nó hỗ trợ hơn 49 ngôn ngữ và cung cấp tốc độ tính toán hiện đại Để cài đặt Spacy trong Linux pip install -U spacy python -m spacy download en Để cài đặt nó trên các hệ điều hành khác, hãy đi qua liên kết này Vì vậy, hãy xem cách chúng ta có thể sử dụng sự tuyệt vời của spaCy để thực hiện mã thông báo. Chúng tôi sẽ sử dụng spacy. lang thang. en hỗ trợ ngôn ngữ tiếng Anh Mã thông báo từ ________số 8_______ Mã thông báo câu Output : ['Founded in 2002, SpaceX’s mission is to enable humans to become a spacefaring civilization and a multi-planet \nspecies by building a self-sustaining city on Mars.', 'In 2008, SpaceX’s Falcon 1 became the first privately developed \nliquid-fuel launch vehicle to orbit the Earth.'] spaCy khá nhanh so với các thư viện khác khi thực hiện các tác vụ NLP (vâng, thậm chí cả NLTK). Tôi khuyến khích bạn nghe podcast DataHack Radio dưới đây để biết câu chuyện đằng sau cách spaCy được tạo ra và nơi bạn có thể sử dụng nó Và đây là hướng dẫn chuyên sâu để giúp bạn bắt đầu với spaCy 5. Token hóa bằng Kerasmáy ảnh. Một trong những framework deep learning hot nhất trong ngành hiện nay. Nó là một thư viện mạng thần kinh mã nguồn mở cho Python. Keras siêu dễ sử dụng và cũng có thể chạy trên TensorFlow Trong ngữ cảnh NLP, chúng tôi có thể sử dụng Keras để xóa dữ liệu văn bản phi cấu trúc mà chúng tôi thường thu thập Bạn có thể cài đặt Keras trên máy của mình chỉ bằng một dòng mã pip install Keras Chúng ta hãy nứt. Để thực hiện mã thông báo từ bằng Keras, chúng tôi sử dụng phương thức text_to_word_sequence từ máy ảnh. sơ chế. lớp văn bản Hãy xem Keras hoạt động Mã thông báo từ Output : ['Founded in 2002, SpaceX’s mission is to enable humans to become a spacefaring civilization and a multi-planet \nspecies by building a self-sustaining city on Mars', 'In 2008, SpaceX’s Falcon 1 became the first privately developed \nliquid-fuel launch vehicle to orbit the Earth.']0 Keras hạ thấp trường hợp của tất cả các bảng chữ cái trước khi mã hóa chúng. Điều đó giúp chúng tôi tiết kiệm khá nhiều thời gian như bạn có thể tưởng tượng 6. Token hóa bằng GensimPhương pháp mã thông báo cuối cùng mà chúng tôi sẽ trình bày ở đây là sử dụng thư viện Gensim. Nó là một thư viện nguồn mở để lập mô hình chủ đề không giám sát và xử lý ngôn ngữ tự nhiên và được thiết kế để tự động trích xuất các chủ đề ngữ nghĩa từ một tài liệu nhất định Đây là cách bạn có thể cài đặt Gensim Output : ['Founded in 2002, SpaceX’s mission is to enable humans to become a spacefaring civilization and a multi-planet \nspecies by building a self-sustaining city on Mars', 'In 2008, SpaceX’s Falcon 1 became the first privately developed \nliquid-fuel launch vehicle to orbit the Earth.']1 Chúng ta có thể sử dụng gensim. utils để nhập phương thức tokenize để thực hiện mã hóa từ Mã thông báo từ Output : ['Founded in 2002, SpaceX’s mission is to enable humans to become a spacefaring civilization and a multi-planet \nspecies by building a self-sustaining city on Mars', 'In 2008, SpaceX’s Falcon 1 became the first privately developed \nliquid-fuel launch vehicle to orbit the Earth.']2 Mã thông báo câu Để thực hiện mã hóa câu, chúng tôi sử dụng phương thức split_sentences từ gensim. tóm tắt. lớp văn bản Output : ['Founded in 2002, SpaceX’s mission is to enable humans to become a spacefaring civilization and a multi-planet \nspecies by building a self-sustaining city on Mars', 'In 2008, SpaceX’s Falcon 1 became the first privately developed \nliquid-fuel launch vehicle to orbit the Earth.']3 Bạn có thể nhận thấy rằng Gensim khá nghiêm khắc với dấu câu. Nó tách ra bất cứ khi nào gặp dấu chấm câu. Trong việc tách câu cũng vậy, Gensim đã mã hóa văn bản khi gặp “\n” trong khi các thư viện khác bỏ qua nó Ghi chú kết thúcMã thông báo là một bước quan trọng trong quy trình NLP tổng thể. Chúng ta không thể đơn giản nhảy vào phần xây dựng mô hình mà không làm sạch văn bản trước Trong bài viết này, chúng ta đã thấy sáu phương pháp mã hóa khác nhau (từ cũng như câu) từ một văn bản nhất định. Cũng có nhiều cách khác nhưng những cách này đủ tốt để giúp bạn bắt đầu với chủ đề này Tôi sẽ đề cập đến các bước làm sạch văn bản khác như xóa từ dừng, gắn thẻ một phần của bài phát biểu và nhận dạng các thực thể được đặt tên trong các bài đăng trong tương lai của tôi. Cho đến lúc đó, hãy tiếp tục học hỏi Tokenization của một tập tin là gì?Mã hóa là quá trình thay thế các phần tử dữ liệu nhạy cảm thực tế bằng các phần tử dữ liệu không nhạy cảm không có giá trị khai thác cho mục đích bảo mật dữ liệu .
Sự khác biệt giữa tokenize và tách Python là gì?tokenize() , trả về một danh sách, sẽ bỏ qua chuỗi rỗng (khi dấu phân cách xuất hiện hai lần liên tiếp) trong khi split() giữ nguyên chuỗi đó. split() có thể lấy regex làm dấu phân cách trong khi tokenize thì không
Mục đích của chức năng Tokenize là gì?Fn. chức năng tokenize ngắt một chuỗi thành một chuỗi các chuỗi con . |