Tôi đã quyết định viết một loạt bài giải thích tất cả các khái niệm cơ bản đến nâng cao về NLP bằng python. Vì vậy, nếu bạn muốn học NLP bằng cách đọc nó và viết mã, đây sẽ là một loạt bài viết hoàn hảo dành cho bạn.
Bất kỳ ai mới hoặc chưa có kinh nghiệm về NLP đều có thể bắt đầu với chúng tôi và theo dõi loạt bài viết này.
Thư viện đã sử dụng: Keras, Tensorflow, Scikit learn, NLTK, Găng tay, v.v.
Tất cả các chủ đề sẽ được giải thích bằng cách sử dụng mã Python cũng như các khung học máy và học sâu phổ biến, chẳng hạn như sci-kit learn, Keras và TensorFlow.
NLP là gì?
Xử lý ngôn ngữ tự nhiên là một phần của khoa học máy tính cho phép máy tính hiểu ngôn ngữ một cách tự nhiên, giống như con người. Điều này có nghĩa là máy tính xách tay sẽ hiểu được cảm xúc, lời nói, trả lời câu hỏi, tóm tắt văn bản, v.v. Chúng ta sẽ không nói nhiều về lịch sử và sự phát triển của nó. Nếu bạn quan tâm, thích điều này liên kết.
Bước 1 Làm sạch dữ liệu
Dữ liệu văn bản thô xuất hiện ngay sau khi các nguồn khác nhau không được làm sạch. Chúng tôi áp dụng nhiều bước để làm cho dữ liệu sạch sẽ. Dữ liệu văn bản chưa được làm sạch chứa thông tin vô dụng làm sai lệch kết quả, vì vậy đây luôn là bước đầu tiên để làm sạch dữ liệu. Một số kỹ thuật tiền xử lý tiêu chuẩn nên được áp dụng để làm cho dữ liệu sạch hơn. Dữ liệu được làm sạch cũng ngăn chặn việc mô hình bị trang bị quá mức.
Trong bài viết này, chúng ta sẽ xem các chủ đề sau trong phần xử lý văn bản và phân tích dữ liệu khám phá.
Tôi đang chuyển đổi dữ liệu văn bản thô thành khung dữ liệu gấu trúc và thực hiện các kỹ thuật làm sạch dữ liệu khác nhau.
import pandas as pd text = ['Đây là BÀI VIẾT NHIỆM VỤ NLP được viết bởi ABhishek Jaiswal** ','Trong bài viết này, tôi sẽ giải thích các kỹ thuật LÀM SẠCH DỮ LIỆU khác nhau', 'Vì vậy, hãy chú ý theo dõi thêm &&','Nah Tôi không nghĩ anh ấy sẽ đến Hoa Kỳ, anh ấy sống xung quanh'] df = pd.DataFrame({'text':text})
Đầu ra:
Viết thường
Phương pháp này lower()
chuyển đổi tất cả các ký tự viết hoa thành chữ thường và trả về.
Nộp đơn lower()
phương pháp sử dụng hàm lambda
df['low'] = df['text'].apply(lambda x: " ".join(x.low() for x in x.split()))
Xóa dấu câu
Xóa dấu chấm câu (*,&,%#@#()
) là một bước quan trọng vì dấu câu không thêm bất kỳ thông tin hoặc giá trị bổ sung nào vào dữ liệu của chúng tôi. Do đó, việc loại bỏ dấu câu sẽ làm giảm kích thước dữ liệu; do đó, nó cải thiện hiệu quả tính toán.
Bước này có thể được thực hiện bằng phương pháp Regex hoặc Thay thế.
string.punctuation
trả về một chuỗi chứa tất cả các dấu câu.
Xóa dấu câu bằng cách sử dụng biểu thức chính quy:
Dừng xóa từ
Những từ thường xuyên xuất hiện trong câu và không có ý nghĩa gì đáng kể trong câu. Những điều này không quan trọng đối với việc dự đoán, vì vậy chúng tôi xóa các từ dừng để giảm kích thước dữ liệu và ngăn chặn việc trang bị quá mức. Lưu ý: Trước khi lọc mật khẩu, hãy đảm bảo bạn viết thường dữ liệu vì mật khẩu của chúng tôi là chữ thường.
Bằng cách sử dụng thư viện NLTK, chúng tôi có thể lọc Mật khẩu của mình khỏi tập dữ liệu.
# !pip install nltk import nltk nltk.download('stopwords') from nltk.corpus import stopwords allstopwords = stopwords.words('english') df.low.apply(lambda x: " ".join(i for i in x .split() nếu tôi không có trong allstopwords))
Sửa lỗi chính tả
Hầu hết dữ liệu văn bản được trích xuất trong các bài đánh giá, blog hoặc tweet của khách hàng đều có một số lỗi chính tả.
Sửa lỗi chính tả giúp cải thiện độ chính xác của mô hình.
Có nhiều thư viện khác nhau để sửa lỗi chính tả, nhưng phương pháp thuận tiện nhất là sử dụng blob văn bản.
Phương pháp này correct()
hoạt động trên các đối tượng văn bản blob và sửa lỗi chính tả.
#Cài đặt thư viện textblob !pip cài đặt textblob từ nhập textblob TextBlob
Mã thông báo
Tokenization có nghĩa là chia văn bản thành các từ đơn vị có ý nghĩa. Có mã thông báo câu cũng như mã thông báo từ.
Trình mã hóa câu sẽ chia một đoạn văn thành các câu có ý nghĩa, trong khi mã thông báo từ sẽ chia một câu thành các từ có ý nghĩa đơn vị. Nhiều thư viện có thể thực hiện mã thông báo như SpaCy, NLTK và TextBlob.
Việc tách một câu trên không gian để lấy các từ đơn vị riêng lẻ có thể được hiểu là token hóa.
import nltk mystring = "Con vật yêu thích của tôi là mèo" nltk.word_tokenize(mystring)
mystring.split("")
đầu ra:
['của tôi', 'yêu thích', 'động vật', 'là', 'mèo']
Xuất phát
Xuất phát là chuyển đổi các từ thành từ gốc bằng cách sử dụng một số bộ quy tắc bất kể ý nghĩa. I E,
- “cá”, “cá” và “câu cá” đều có nguồn gốc từ “cá”.
- “chơi”, “chơi”, “chơi” đều bắt nguồn từ “chơi”.
- Stemming giúp giảm vốn từ vựng do đó cải thiện độ chính xác.
Cách đơn giản nhất để thực hiện bắt nguồn là sử dụng NLTK hoặc thư viện TextBlob.
NLTK cung cấp nhiều kỹ thuật bắt nguồn khác nhau, ví dụ Snowball, PorterStemmer; kỹ thuật khác nhau tuân theo các bộ quy tắc khác nhau để chuyển đổi từ thành từ gốc của chúng.
nhập nltk từ nltk.stem import PorterStemmer st = PorterStemmer() df['text'].apply(lambda x:" ".join([st.stem(word) cho từ trong x.split()]))
“bài viết” bắt nguồn từ “articl
","lives
“ — -> “live
".
Bổ sung
Lemmatization là chuyển đổi các từ thành từ gốc bằng cách sử dụng ánh xạ từ vựng. Việc bổ ngữ được thực hiện với sự trợ giúp của một phần lời nói và ý nghĩa của nó; do đó nó không tạo ra các từ gốc vô nghĩa. Nhưng từ vựng hóa chậm hơn so với từ gốc.
- "tốt, ""hơn," hoặc là "tốt” được bổ nghĩa thành “tốt".
- Lemmatization sẽ chuyển đổi tất cả các từ đồng nghĩa thành một từ gốc duy nhất. I E "xe hơi","xe hơi"," xe tải"," xe” được lemmatized thành “ô tô”.
- Lemmatization thường nhận được kết quả tốt hơn.
I E. leafs
Bắt nguồn từ. lá bắt nguồn từ leav
trong khi leafs
, leaves
từ vựng thành leaf
Việc bổ sung có thể được thực hiện bằng cách sử dụng thư viện NLTK, TextBlob.
Lemmatize toàn bộ tập dữ liệu.
Bước 2 Phân tích dữ liệu thăm dò
Cho đến nay, chúng ta đã thấy các kỹ thuật tiền xử lý văn bản khác nhau phải được thực hiện sau khi lấy dữ liệu thô. Sau khi làm sạch dữ liệu, giờ đây chúng tôi có thể thực hiện phân tích dữ liệu khám phá cũng như khám phá và hiểu dữ liệu văn bản.
Tần số từ trong dữ liệu
Việc đếm các từ duy nhất trong dữ liệu của chúng tôi sẽ đưa ra ý tưởng về các thuật ngữ thường xuyên nhất, ít thường xuyên nhất trong dữ liệu của chúng tôi. Chúng tôi thường bỏ đi những nhận xét ít thường xuyên nhất để làm cho việc đào tạo mô hình của chúng tôi trở nên khái quát hơn.
nltk
cung cấp Freq_dist
class để tính toán tần số từ và phải mất một túi từ làm đầu vào.
all_words = [] cho câu trong df['processed']: all_words.extend(sentence.split())
all_words
Chứa tất cả các từ có sẵn trong tập dữ liệu của chúng tôi. Chúng ta thường gọi nó là từ vựng.
nhập nltk nltk.Freq_dist(all_words)
Điều này hiển thị từ là khóa và số lần xuất hiện trong dữ liệu của chúng tôi là giá trị.
Đám mây từ
Wordcloud là sự thể hiện bằng hình ảnh về tần suất từ của tập dữ liệu. WordCloud dễ hiểu hơn và đưa ra ý tưởng tốt hơn về dữ liệu văn bản của chúng tôi.
Sản phẩm
thư viện wordcloud
Chúng ta hãy tạo một đám mây từ trong một vài dòng mã.
nhập thư viện:
từ wordcloud nhập WordCloud từ wordcloud nhập STOPWORDS nhập matplotlib.pyplot dưới dạng plt
Chúng ta có thể vẽ một đám mây từ bằng cách sử dụng văn bản chứa tất cả các từ trong dữ liệu của chúng ta.
từ = [] cho tin nhắn trong df['processed']: Words.extend([từ cho từ trong tin nhắn.split() nếu từ không có trong STOPWORDS]) wordcloud = WordCloud(width = 1000, Height = 500).generate( " ".join(words)) plt.imshow(wordcloud, interpolation='biographic') plt.axis("off") plt.show()
background_color = 'white'
sử dụng tham số này, chúng ta có thể thay đổi màu nền của đám mây từ.collocations = False
Giữ nó là Sai sẽ bỏ qua các từ sắp xếp thứ tự. Collocations là những từ được hình thành bởi những từ xuất hiện cùng nhau. Tức là chú ý, làm bài tập về nhà, v.v.- Chúng ta có thể điều chỉnh chiều cao và chiều rộng bằng cách sử dụng các tham số.
Chú thích : Trước khi tạo đám mây từ hãy luôn loại bỏ các mật khẩu.
Ghi chú cuối
Trong bài viết này, chúng ta đã thấy nhiều kỹ thuật cần thiết khác nhau để xử lý trước dữ liệu văn bản. Sau khi làm sạch dữ liệu, chúng tôi thực hiện phân tích dữ liệu khám phá bằng cách sử dụng đám mây từ và tạo tần suất từ.
Trong bài viết thứ hai của loạt bài này, chúng ta sẽ tìm hiểu các chủ đề sau:
Nguồn: https://www.analyticsvidhya.com/blog/2022/01/nlp-tutorials-part-i-from-basics-to-advance/
- "
- &
- Giới thiệu
- Tất cả
- phân tích
- xung quanh
- bài viết
- bài viết
- có sẵn
- túi từ
- Khái niệm cơ bản
- blog
- cuộc gọi
- tỷ lệ cược
- thay đổi
- Làm sạch
- đám mây
- mã
- Lập trình
- Bình luận
- Khoa học Máy tính
- máy tính
- dữ liệu
- phân tích dữ liệu
- học kĩ càng
- khác nhau
- Không
- Rơi
- hiệu quả
- Tiếng Anh
- vv
- sự tiến hóa
- Tên
- Sửa chữa
- theo
- tạo ra
- nhận được
- giúp đỡ
- giúp
- lịch sử
- Trang Chủ
- HTTPS
- ý tưởng
- quan trọng
- cải thiện
- hệ thống riêng biệt,
- thông tin
- IT
- giữ
- máy ảnh
- Key
- Ngôn ngữ
- máy tính xách tay
- LEARN
- học tập
- bổ đề
- Thư viện
- học máy
- Làm
- trung bình
- kiểu mẫu
- chi tiết
- nlp
- Trả
- Phổ biến
- dự đoán
- cung cấp
- Python
- Nguyên
- dữ liệu thô
- Reading
- giảm
- thay thế
- Kết quả
- Trả về
- Đánh giá
- quy tắc
- Khoa học
- Loạt Sách
- định
- Kích thước máy
- So
- Không gian
- Bắt đầu
- ở lại
- thân cây
- nói
- kỹ thuật
- tensorflow
- bên nhau
- Mã thông báo
- Chủ đề
- Hội thảo
- hướng dẫn
- us
- thường
- giá trị
- từ
- công trinh
- X
- không