Trong hướng dẫn Lập trình Python này, chúng ta sẽ thảo luận về Lập trình và Bổ sung trong Ngôn ngữ Lập trình Python – hai điều cơ bản khi làm việc với khoa học dữ liệu trong Python. Hơn nữa, chúng ta sẽ thảo luận về các ví dụ Python NLTK và Python Stemming. Cùng với điều này, chúng ta sẽ học Python Stemming vs Lemmatization.
Các bài viết liên quan:
Vì vậy, hãy bắt đầu Lập trình và bổ sung Python.
Điều kiện tiên quyết để lập trình và bổ sung Python
Vì mục đích của chúng tôi, chúng tôi sẽ sử dụng thư viện sau-
Python NLTK
Python NLTK là từ viết tắt của Natural Language Toolkit . Đây là một bộ thư viện cho phép chúng tôi thực hiện Xử lý ngôn ngữ tự nhiên (NLP) trên tiếng Anh với Python. Nó cho phép chúng tôi làm như vậy theo cách tượng trưng và thống kê. Nó cũng cung cấp dữ liệu mẫu và hỗ trợ biểu diễn đồ họa.
Xem thêm Các related entities trong SEO
Bạn có làm thế nào để đổi tên tệp trong Python – Một và nhiều tệp với ví dụ
Bạn có thể cài đặt nó bằng cách sử dụng pip
pip install nltk
Sau đó, để nhập nó, bạn có thể nhập trình thông dịch
import nltk
Cuối cùng, để cài đặt các gói từ NLTK, bạn cần sử dụng trình tải xuống của nó.
nltk.download()
Bạn có thể tải xuống tất cả các gói hoặc chọn những gói bạn muốn tải xuống. Khám phá tab ‘Tất cả các gói’.
Xem thêm Statistical(thống kê) sử dụng Python
Python Stemming là gì?
Python Stemming là hành động lấy một từ và rút gọn nó thành từ gốc. Thân cây giống như cái rễ của một từ – writing là writing . Nhưng điều này không phải lúc nào cũng là một từ; các từ như study , studies và studying đều bắt nguồn từ từ studi, thực ra không phải là một từ.
Nó gần giống như những từ này là từ đồng nghĩa; điều này cho phép chúng tôi bình thường hóa các câu và giúp tìm kiếm các từ dễ dàng hơn và nhanh hơn. Các thuật toán gốc Python mà chúng tôi có thường dựa trên các quy tắc áp dụng cho việc tước bỏ hậu tố. Phổ biến nhất là Porter-Stemmer, xuất hiện từ năm 1979.
Xem thêm Đọc file CSV, JSON, XLSX bằng Python
Python lập các từ riêng lẻ
import nltk #import nltk from nltk.stem import PorterStemmer #import nltk.stem words=['write','writer','writing','writers'] # khai báo 1 array gồm 4 phần từ ps=PorterStemmer() # tạo mới đối tượng PorterStemmer() for word in words: #chạy vòng for print(f"{word}: {ps.stem(word)}")# in ra từng word
ps.stem('written')
ps.stem('wrote')
ps.stem('writable')
ps.stem('writes')
Một ví dụ khác về lập trình Python
Hãy thử nhiều từ hơn.
ps.stem('game')
‘trò chơi’
ps.stem('gaming')
ps.stem('gamed')
ps.stem('games')
Python tạo toàn bộ một câu
from nltk.tokenize import word_tokenize # khai báo sử dụng nltk.tokenize nltk.download('punkt')# download 'punkt' #khai báo 1 câu bất kì sentence='I am enjoying writing this tutorial; I love to write and I have written 266 words so far. I wrote more than you did; I am a writer.' #tách các từ tư câu words=word_tokenize(sentence) #in từ gốc trong câu for word in words: print(f"{word}: {ps.stem(word)}")
Xem thêm Hướng dẫn python
Bổ ngữ Python là gì?
Việc bổ sung Python cho phép chúng ta nhóm các dạng từ được tổng hợp lại với nhau. Nó liên kết các từ có nghĩa tương tự với một từ và ánh xạ các từ khác nhau vào một gốc.
Hãy thảo luận về các biểu thức chính quy trong Python | Hướng dẫn Python Regex
Python Stemming và Lemmatization
Nhưng cách Lemmatization Python khác với stemming như thế nào? Mặc dù việc tạo từ gốc có thể tạo ra các từ không thực sự tồn tại, nhưng việc lemmatization Python sẽ chỉ dẫn đến các từ đúng. bổ đề là các từ thực tế.
ps.stem('indetify')
lemmatizer.lemmatize('identify')
Ví dụ về Python Lemmatization
from nltk.stem import WordNetLemmatizer # khai báo thư viện nltk.stem lemmatizer=WordNetLemmatizer() # tạo mới đối tượng WordNetLemmatizer nltk.download('wordnet') # download wordnet lemmatizer.lemmatize('dogs') # lemmatize từ dogs
lemmatizer.lemmatize('geese')
lemmatizer.lemmatize('cacti')
lemmatizer.lemmatize('erasers')
lemmatizer.lemmatize('children')
lemmatizer.lemmatize('feet')
Sử dụng Pos
lemmatizer.lemmatize('better',pos='a')
Ở đây, pos là một tham số lời nói, là danh từ theo mặc định. Điều này có nghĩa là Python sẽ cố gắng tìm danh từ gần nhất.
lemmatizer.lemmatize('redder','a')
Vì, bổ ngữ Python xem xét liệu một từ có phải là danh từ, động từ, tính từ, trạng từ hay không, và do đó, Python cần tìm hiểu về ngữ cảnh của từ.
Xem thêm Dữ liệu đồ thị & bản đồ địa lý Python
Xử lý văn bản trong NLTK
Trước khi xử lý văn bản trong Hướng dẫn sử dụng Python NLTK, bạn nên mã hóa nó. Ý của chúng tôi là bạn nên chia nó thành các phần nhỏ hơn – đoạn văn thành câu, câu thành từ. Chúng ta có hai loại tokenizers- cho câu và cho từ.
NLTK Sentence Tokenizer
Hãy thử mã hóa một câu.
text="Today is a great day. And yesterday was the best day ever." from nltk.tokenize import sent_tokenize sent_tokenize(text)
Được rồi, một câu nữa trong Hướng dẫn sử dụng Python NLTK. Làm thế nào về việc chúng ta sử dụng những từ trong văn bản? Tokenizer sẽ có thể bắt được nó?
nltk.sent_tokenize("Last night, I went to Mrs. Martinez's housewarming. It was a disaster.")
NLTK Word Tokenizer
Đầu tiên, hãy mã hóa văn bản tôi n Hướng dẫn sử dụng Python NLTK .
nltk.word_tokenize(text)
nltk.word_tokenize("Last night, I went to Mrs. Martinez's housewarming. It was a disaster.")
Tìm từ đồng nghĩa từ WordNet NLTK
WordNet là một cơ sở dữ liệu NLP với các từ đồng nghĩa, trái nghĩa và định nghĩa ngắn gọn. Chúng tôi đã tải xuống tệp này bằng trình tải xuống NLTK.
from nltk.corpus import wordnet syn=wordnet.synsets('love') syn
Hãy chọn từ đầu tiên từ cái này
syn[0].definition() syn[0].examples() syn=wordnet.synsets('life') syn[0].definition()
Để nhận danh sách các từ đồng nghĩa:
synonyms=[] for syn in wordnet.synsets('AI'): for lemma in syn.lemmas(): synonyms.append(lemma.name()) synonyms
Xem thêm Trình thông dịch Python là gì – Môi trường, Lời mời Làm việc
Tìm từ trái nghĩa từ WordNet NLTK
Để có được danh sách các từ trái nghĩa, trước tiên chúng ta cần kiểm tra các bổ đề- có từ trái nghĩa không?
from nltk.corpus import wordnet antonyms=[] for syn in wordnet.synsets('depressed'): for l in syn.lemmas(): if l.antonyms(): antonyms.append(l.antonyms()[0].name()) antonyms
for syn in wordnet.synsets('ugly'): for l in syn.lemmas(): if l.antonyms(): antonyms.append(l.antonyms()[0].name()) antonyms
Kết luận
Do đó, trong hướng dẫn Python này, chúng tôi đã nghiên cứu về Python Stemming và Lemmatization. Ngoài ra, chúng tôi đã nghiên cứu NLTK, một ví dụ về Lập trình và bổ sung hóa trong Python, và sự khác biệt giữa Lập trình gốc và bổ sung hóa Python. Hãy cho chúng tôi biết bạn nghĩ gì về hướng dẫn bổ sung và tạo gốc cho Python này, trong hộp nhận xét.