Word nhúng python

Các nhúng từ là các biểu diễn véc tơ của các từ, sau đó có thể được sử dụng để đào tạo các mô hình cho máy học

Một phương pháp để biểu diễn các từ ở dạng vectơ là sử dụng mã hóa một chiều để ánh xạ từng từ thành một vectơ một chiều. Tuy nhiên, mã hóa một lần nóng các từ không đo được mối quan hệ giữa các từ và dẫn đến các biểu diễn ma trận thưa thớt rất lớn, tiêu tốn bộ nhớ và dung lượng. n-gram có thể được sử dụng để nắm bắt mối quan hệ giữa các từ, nhưng không giải quyết được kích thước của không gian tính năng đầu vào, không gian này tăng theo cấp số nhân với số lượng n-gram. Sử dụng n-gram cũng có thể dẫn đến tăng độ thưa thớt của dữ liệu, điều đó có nghĩa là cần nhiều dữ liệu hơn để đào tạo thành công các mô hình thống kê

Giải pháp nhúng Word2vec cho hai vấn đề này. Chúng đại diện cho các từ trong không gian vectơ N chiều liên tục (trong đó N đề cập đến các chiều của vectơ) sao cho các từ có chung ngữ cảnh và ngữ nghĩa được đặt gần nhau trong không gian. Chẳng hạn, các từ "bác sĩ", "bác sĩ" và "bác sĩ X quang" có chung bối cảnh và ý nghĩa và do đó có chung biểu diễn véc tơ. Word2Vec đào tạo một mạng thần kinh với một lớp ẩn duy nhất với mục tiêu tối đa hóa xác suất của các từ tiếp theo cho các từ trước đó

Mạng không được sử dụng cho nhiệm vụ mà nó đã được đào tạo. Các hàng của ma trận trọng số lớp ẩn được sử dụng thay cho từ nhúng. Đối với một lớp ẩn có N=300 nơ-ron, kích thước ma trận trọng số W là V x N, trong đó V là kích thước của bộ từ vựng. Mỗi hàng trong W tương ứng với việc nhúng một từ trong từ vựng và có kích thước N=300, dẫn đến biểu diễn vectơ nhỏ hơn và ít thưa thớt hơn sau đó là mã hóa 1 nóng (trong đó kích thước của phần nhúng là o cùng thứ tự với

Hướng dẫn này giải thích

  1. cách sử dụng mô hình word2vec được đào tạo trước với Gensim và Spacy, hai thư viện Python cho NLP,
  2. cách đào tạo mô hình word2vec của riêng bạn với Gensim,
  3. và cách sử dụng mô hình word2vec tùy chỉnh của bạn với Spacy

Spacy là một thư viện xử lý ngôn ngữ tự nhiên dành cho Python được thiết kế để có hiệu suất nhanh và với các mô hình nhúng từ được tích hợp sẵn. Gensim là một thư viện lập mô hình chủ đề cho Python, cung cấp các mô-đun để đào tạo Word2Vec và các thuật toán nhúng từ khác, đồng thời cho phép sử dụng các mô hình được đào tạo trước

Hướng dẫn này hoạt động với Python3. Trước tiên hãy chắc chắn rằng bạn có các thư viện Gensim và Spacy. Bạn có thể cài đặt chúng với pip3 thông qua pip3 install spacy gensim trong thiết bị đầu cuối của bạn

Vectơ Từ Với Spacy

Spacy cung cấp một số mô hình được đào tạo trước bằng các ngôn ngữ khác nhau với các kích cỡ khác nhau. Tôi chọn làm việc với mô hình được đào tạo về văn bản viết (blog, tin tức, bình luận) bằng tiếng Anh. Một danh sách các mô hình này có thể được tìm thấy ở đây. https. //spacy. io/mô hình

Word nhúng python

Sự tương tự với các từ khác, vectơ của từng mã thông báo được xử lý, vectơ trung bình cho toàn bộ câu đều là những thuộc tính hữu ích có thể được sử dụng cho NLP. Dự đoán sự giống nhau rất hữu ích để xây dựng các hệ thống đề xuất hoặc gắn cờ các bản sao chẳng hạn

Word nhúng python

Word nhúng python

Trong ví dụ bên dưới, các từ phần mềm, máy tính và thư đều có trong từ vựng mà mô hình đã được đào tạo và có thể truy cập các vectơ của chúng. Mã thông báo hjhdgs nằm ngoài từ vựng và biểu diễn véc-tơ của nó bao gồm một véc-tơ 0 có kích thước là 300

Word nhúng python

Vectơ Từ Với Gensim

Gensim không cung cấp các mô hình được đào tạo trước để nhúng word2vec. Có những mô hình có sẵn trực tuyến mà bạn có thể sử dụng với Gensim. Một tùy chọn là sử dụng mô hình bộ dữ liệu Google Tin tức cung cấp các vectơ được đào tạo trước được đào tạo trên một phần của bộ dữ liệu Google Tin tức (khoảng 100 tỷ từ). Mô hình chứa các vectơ 300 chiều cho 3 triệu từ và cụm từ. Các kho lưu trữ có sẵn ở đây. GoogleTin tức-vectors-negative300. thùng rác. gz từ https. //mã số. Google. com/archive/p/word2vec/

Word nhúng python

Word nhúng python

Word nhúng python

Word nhúng python

Các vectơ đầu ra thô có thể được truy cập thông qua gensim_model['computer'] và có thể được sử dụng cho tác vụ NLP của bạn

Tạo mô hình word2vec của riêng bạn với Gensim

Mô hình nhúng từ được đào tạo trước có thể không nắm bắt được các đặc điểm của ngôn ngữ cho một miền cụ thể. Ví dụ: một mô hình được đào tạo với các bài báo trên Wikipedia có thể không tiếp xúc với các từ và các khía cạnh khác đối với các lĩnh vực như y học hoặc luật. Hết từ vựng có thể là một vấn đề khác với mô hình được đào tạo trước. Đào tạo word2Vec của riêng bạn có thể dẫn đến các giải pháp tối ưu hơn cho ứng dụng của bạn

Có thể đào tạo mô hình word2vec của riêng bạn với Gensim. Phần này bao gồm các bước cần thiết. Để kiểm tra tác động của việc có mô hình word2vec tùy chỉnh, tôi đã tải xuống bộ dữ liệu Mẫu 2017-10-30 (10k giấy tờ, 10 MB) từ Open Corpus https. //api. học giả ngữ nghĩa. org/corpus/download/, bao gồm phần tóm tắt từ 10.000 tài liệu nghiên cứu đã xuất bản trong lĩnh vực Khoa học thần kinh và Y sinh. Tôi hy vọng mô hình tùy chỉnh sẽ cung cấp các vectơ từ chính xác hơn cho các từ trong lĩnh vực khoa học thần kinh và y sinh so với mô hình được đào tạo trước trong bộ dữ liệu của Google Tin tức

Chúng tôi giới hạn đào tạo ở mức 10 nghìn tài liệu nghiên cứu cho mục đích trình diễn. Tuy nhiên, tập dữ liệu lớn hơn có thể phù hợp hơn cho ứng dụng thực

Đầu vào cho đào tạo

Word2vec của Gensim mong đợi một chuỗi các câu làm đầu vào. Mỗi câu là một danh sách các từ. Các câu có thể là một trình tạo, đọc dữ liệu đầu vào từ đĩa khi đang di chuyển mà không cần tải toàn bộ kho dữ liệu vào RAM. Thay vì giữ một danh sách các câu trong bộ nhớ, có thể sử dụng nhiều RAM khi đầu vào lớn, chúng tôi xây dựng lớp IterableSentences, trong đó mỗi tệp trong kho văn bản được xử lý theo từng dòng

Chúng tôi sử dụng regex để xử lý trước văn bản. Mỗi câu được chuyển đổi thành chữ thường và tất cả các chữ số, ký tự đặc biệt và khoảng trắng thừa khỏi văn bản đều bị xóa. Sau khi tiền xử lý, trình tạo trả về một danh sách các từ viết thường

Tiền xử lý bổ sung có thể được thêm vào trong IterableSentences. __iter__

Word nhúng python

IterableSentences xem các tệp văn bản trong một thư mục. Trong trường hợp của tôi, tất cả các bản tóm tắt được tải trong một tệp văn bản trong một thư mục có tên là bộ dữ liệu

Word nhúng python

Đào tạo

Word2vec chấp nhận một số tham số ảnh hưởng đến cả tốc độ và chất lượng đào tạo. Chúng tôi tập trung ở đây vào một vài

  1. min_count để bỏ qua các từ không xuất hiện trên một mức nhất định và không có đủ dữ liệu để tìm hiểu các biểu diễn hữu ích
  2. size để đặt kích thước của lớp ẩn. Số lượng tế bào thần kinh lớn hơn trong lớp ẩn có nghĩa là biểu diễn vectơ lớn hơn, có thể dẫn đến các mô hình chính xác hơn. Tuy nhiên, số lượng lớn hơn đòi hỏi nhiều dữ liệu hơn để đào tạo

Các thông số khác để kiểm soát đào tạo có thể được tìm thấy ở đây

Khám phá mô hình tùy chỉnh

Để khám phá những lợi ích của việc có một mô hình tùy chỉnh, chúng tôi xem xét một số ví dụ cụ thể

Trong ví dụ bên dưới, mô hình tùy chỉnh loại trừ não khỏi danh sách ['phụ nữ', 'buồng trứng', 'não'] chính xác hơn loại trừ phụ nữ khi xem xét lĩnh vực y sinh

Word nhúng python

Word nhúng python

Khi xem từ giống nhất với từ tác giả, mô hình tùy chỉnh cung cấp một danh sách cụ thể hơn cho các tài liệu nghiên cứu, trong khi mô hình được đào tạo trước cung cấp một danh sách cụ thể hơn cho sách văn học

Word nhúng python

Word nhúng python

Đối với từ hydroxylasepositive, mô hình được đào tạo trước không thành công do từ này là OOV, đây không phải là trường hợp của mô hình tùy chỉnh

Word nhúng python

Sử dụng mô hình tùy chỉnh với Spacy

Có thể sử dụng mô hình mà chúng tôi đã đào tạo với Spacy, tận dụng các công cụ mà Sapcy cung cấp

Sau đây là tóm tắt các bước sử dụng kiểu tùy chỉnh với Spacy

Lưu mô hình của bạn ở định dạng văn bản thuần túy

Word nhúng python

Gzip tệp văn bản.  

Word nhúng python

tạo ra một word2vec. txt. tập tin gz

Chạy lệnh sau

Word nhúng python

Tải các vectơ trong Spacy bằng cách sử dụng

Word nhúng python

Độ chính xác của mô hình word2vec có thể được cải thiện bằng cách sử dụng các tham số khác nhau để đào tạo, kích thước văn bản khác nhau hoặc kiến ​​trúc mô hình khác nhau. Việc tăng kích thước cửa sổ của ngữ cảnh, kích thước vectơ và bộ dữ liệu huấn luyện có thể cải thiện độ chính xác của mô hình word2vec, tuy nhiên, với chi phí tăng độ phức tạp tính toán

Tốc độ và hiệu suất đào tạo có thể được cải thiện bằng cách loại bỏ các từ rất thường xuyên cung cấp ít thông tin, chẳng hạn như a, và và

Có thể phát hiện các bigram và trigram thường xuyên xảy ra bằng Gensim Phraser, điều này có thể cải thiện độ chính xác và tính hữu dụng của các phần nhúng. Ví dụ, mô hình có thể được huấn luyện để tạo ra một vectơ cho new_york, thay vì huấn luyện các vectơ cho new và york

Người giới thiệu


Thêm Hướng dẫn để Thực hành Kỹ năng của bạn trên

– Giới thiệu về Thiếu dữ liệu bị thiếu
– Điều chỉnh siêu tham số trong XGBoost
– Giới thiệu về Kiến trúc CoordConv. Học sâu
– Mạng thần kinh trong Python
– Bắt đầu với XGBoost


Word nhúng python

Bởi Chris Tegho

Chris hiện đang làm Kỹ sư máy học cho một công ty khởi nghiệp, Calipsa. Sở thích của anh ấy bao gồm mạng lưới thần kinh Bayesian, học tăng cường, học tăng cường meta, suy luận đa dạng và thị giác máy tính. Anh ấy đã hoàn thành bằng Thạc sĩ về học máy tại Đại học Cambridge, vào tháng 8 năm 2017. Đối với luận án của mình, anh ấy đã làm việc để cải thiện các ước tính không chắc chắn trong học tăng cường sâu, thông qua Bayes By Backprop, để áp dụng các hệ thống đối thoại

Trước đây, anh ấy từng làm việc với tư cách là nhà phát triển và tư vấn đám mây cho một công ty tư vấn ERP ở Montreal, đồng thời lấy bằng Cử nhân Kỹ thuật Điện tại McGill.  

Nhúng từ trong Python là gì?

Nhúng từ là kỹ thuật lập mô hình ngôn ngữ được sử dụng để ánh xạ từ thành vectơ của số thực . Nó đại diện cho các từ hoặc cụm từ trong không gian vectơ với nhiều chiều. Các nhúng từ có thể được tạo bằng nhiều phương pháp khác nhau như mạng thần kinh, ma trận đồng thời, mô hình xác suất, v.v.

Sự khác biệt giữa nhúng từ và Word2Vec là gì?

Mặc dù Word2Vec là một mô hình không được giám sát, trong đó bạn có thể cung cấp một kho văn bản mà không có bất kỳ thông tin nhãn nào và mô hình có thể tạo các từ nhúng dày đặc, Word2Vec tận dụng một mô hình phân loại được giám sát trong nội bộ để lấy các mô hình này . .

Nhúng từ với ví dụ là gì?

Do đó, bằng cách sử dụng tính năng nhúng từ, các từ gần nghĩa được nhóm gần nhau trong không gian vectơ . Ví dụ, trong khi đại diện cho một từ chẳng hạn như ếch, hàng xóm gần nhất của ếch sẽ là ếch, cóc, Litoria.

Có phải từ nhúng NLP không?

Trong xử lý ngôn ngữ tự nhiên (NLP), nhúng từ là một thuật ngữ được sử dụng để biểu diễn các từ để phân tích văn bản, thường ở dạng một vectơ có giá trị thực mã hóa nghĩa của từ sao cho các từ gần hơn trong vectơ