Các từ dừng trong Python NLP là gì?

Từ dừng là những từ rất phổ biến trong các văn bản văn bản như a, an, the, you, your, v.v. Stop Words xuất hiện nhiều trong tài liệu văn bản. Tuy nhiên, chúng không hữu ích cho việc phân tích văn bản trong nhiều trường hợp, vì vậy tốt hơn là loại bỏ khỏi văn bản. Chúng ta có thể tập trung vào các từ quan trọng nếu các từ dừng đã bị xóa

Gói NLTK cung cấp danh sách từ dừng. Nếu bạn chưa cài đặt mô-đun NLTK trong máy cục bộ của mình, vui lòng cài đặt nó trước khi tiếp tục sử dụng lệnh bên dưới

pip install nltk

Sau khi cài đặt thành công mô-đun NLTK, vui lòng cài đặt dữ liệu NLTK chứa nhiều kho ngữ liệu, ngữ pháp đồ chơi, mô hình được đào tạo, v.v.

Cài đặt dữ liệu NLTK

Đầu tiên, mở trình thông dịch Python và gõ lệnh sau

import nltk
nltk.download[]

Sau khi nhấn lệnh này, Cửa sổ đã tải xuống NLTK sẽ mở ra. Nhấp vào nút Tải xuống để tải xuống kho văn bản NLTK

Hãy tải các từ dừng của ngôn ngữ tiếng Anh trong python

In [1]:
from nltk.corpus import stopwords
stopWords = set[stopwords.words['english']]
# Number of stop word in list.
In [2]: print[len[stopWords]]
Out[2]: 179

NLTK hỗ trợ nhiều ngôn ngữ khác nhau để xử lý văn bản. Hãy liệt kê ngôn ngữ được hỗ trợ bằng từ khóa NLTK

In [3]:
from nltk.corpus import stopwords
stopwords.fileids[]
Out[3]:
['arabic', 'azerbaijani', 'danish', 'dutch', 'english', 'finnish', 'french', 'german', 'greek', 'hungarian', 'indonesian', 'italian', 'kazakh', 'nepali', 'norwegian', 'portuguese', 'romanian', 'russian', 'spanish', 'swedish', 'turkish']
# Let's print 10 stopword
In [4]:
i = 0
for e in stopWords:
    print[e]
    i = i + 1
    if[i >= 10]:
        break
Out[4]:
were
of
should've
through
yourselves
isn
won't
y
other
myself

     .      

Từ dừng tùy chỉnh

Chúng tôi cũng có thể xây dựng danh sách từ dừng tùy chỉnh theo miền cụ thể. Ví dụ, trong các tài liệu văn bản y tế, từ như Dr. , thuốc, bệnh nhân, y học, v.v. xuất hiện trong hầu hết các tài liệu. Chúng ta có thể coi những từ này là từ dừng. Ví dụ khác là dữ liệu văn bản Twitter, thuật ngữ như #, @, RT, v.v. đang xảy ra trong hầu hết các tweet

Bạn có thích Xử lý ngôn ngữ tự nhiên [NLP] đa dạng tuyệt vời như thế nào không? . thật thú vị

Nhưng làm việc với dữ liệu văn bản mang đến những thách thức riêng. Máy móc gặp khó khăn khi xử lý văn bản thô. Chúng tôi cần thực hiện một số bước nhất định, được gọi là tiền xử lý, trước khi có thể làm việc với dữ liệu văn bản bằng các kỹ thuật NLP

Bỏ lỡ các bước này, và chúng tôi đang ở trong một mô hình bị hỏng. Đây là những kỹ thuật NLP thiết yếu mà bạn cần kết hợp trong mã, khung và dự án của mình

Chúng tôi đã thảo luận bước đầu tiên về cách bắt đầu với NLP trong bài viết này. Hãy tiến xa hơn một chút và thực hiện một bước nhảy vọt. Chúng ta sẽ thảo luận về cách xóa từ dừng và thực hiện chuẩn hóa văn bản trong Python bằng một số thư viện NLP rất phổ biến – NLTK, spaCy, Gensim và TextBlob

Bạn là người mới bắt đầu học NLP?

Mục lục

  • Từ dừng là gì?
  • Tại sao chúng ta cần Xóa Stopwords?
  • Khi nào chúng ta nên Xóa từ khóa?
  • Các phương pháp khác nhau để loại bỏ các từ dừng
    • Sử dụng NLTK
    • Sử dụng spaCy
    • Sử dụng Gensim
  • Giới thiệu về chuẩn hóa văn bản
  • Stemming và Lemmatization là gì?
  • Phương pháp thực hiện Stemming và Lemmatization
    • Sử dụng NLTK
    • Sử dụng spaCy
    • Sử dụng TextBlob

Từ dừng là gì?

Từ dừng là những từ phổ biến nhất trong bất kỳ ngôn ngữ tự nhiên nào. Với mục đích phân tích dữ liệu văn bản và xây dựng mô hình NLP, những từ khóa này có thể không bổ sung nhiều giá trị cho ý nghĩa của tài liệu

Nói chung, những từ phổ biến nhất được sử dụng trong văn bản là “the”, “is”, “in”, “for”, “where”, “when”, “to”, “at”, v.v.

Hãy xem xét chuỗi văn bản này - “Có một cây bút trên bàn”. Giờ đây, các từ “is”, “a”, “on” và  “the” không thêm ý nghĩa gì cho câu lệnh khi phân tích cú pháp câu lệnh đó. Trong khi những từ như “there”, “book” và “table” là những từ khóa và cho chúng ta biết nội dung của câu nói đó là gì

Một lưu ý ở đây - chúng tôi cần thực hiện mã thông báo trước khi xóa bất kỳ từ dừng nào. Tôi khuyến khích bạn xem qua bài viết của tôi bên dưới về các phương pháp khác nhau để thực hiện mã thông báo

Dưới đây là danh sách các từ khóa cơ bản mà bạn có thể thấy hữu ích

a about after all also always am an and any are at be been being but by came can cant come 
could did didn't do does doesn't doing don't else for from get give goes going had happen 
has have having how i if ill i'm in into is isn't it its i've just keep let like made make 
many may me mean more most much no not now of only or our really say see some something 
take tell than that the their them then they thing this to try up us use used uses very 
want was way we what when where which who why will with without wont you your youre

Tại sao chúng ta cần loại bỏ các từ dừng?

Một câu hỏi khá quan trọng và bạn phải có trong tâm trí

Loại bỏ các từ khóa không phải là một quy tắc khó và nhanh trong NLP. Nó phụ thuộc vào nhiệm vụ mà chúng tôi đang làm. Đối với các tác vụ như phân loại văn bản, trong đó văn bản được phân loại thành các danh mục khác nhau, các từ dừng sẽ được xóa hoặc loại trừ khỏi văn bản đã cho để có thể tập trung hơn vào những từ xác định ý nghĩa của văn bản

Giống như chúng ta đã thấy trong phần trên, những từ như there, book và table thêm nhiều ý nghĩa hơn cho văn bản so với các từ is và on

Tuy nhiên, trong các tác vụ như dịch máy và tóm tắt văn bản, không nên xóa từ dừng

Dưới đây là một vài lợi ích chính của việc loại bỏ từ dừng

  • Khi xóa từ khóa, kích thước tập dữ liệu giảm và thời gian đào tạo mô hình cũng giảm
  • Xóa từ dừng có khả năng giúp cải thiện hiệu suất vì có ít hơn và chỉ còn lại các mã thông báo có ý nghĩa. Do đó, nó có thể tăng độ chính xác phân loại
  • Ngay cả các công cụ tìm kiếm như Google cũng xóa các từ dừng để truy xuất dữ liệu nhanh chóng và phù hợp từ cơ sở dữ liệu

Khi nào chúng ta nên xóa từ khóa?

Tôi đã tóm tắt điều này thành hai phần. khi nào chúng ta có thể xóa từ khóa và khi nào chúng ta nên tránh làm như vậy

Chúng tôi có thể xóa từ dừng trong khi thực hiện các tác vụ sau

  • Phân loại văn bản
    • Lọc thư rác
    • Phân loại ngôn ngữ
    • Phân loại thể loại
  • Tạo phụ đề
  • Tạo thẻ tự động

Tránh xóa từ dừng

  • Dịch máy
  • Mô hình hóa ngôn ngữ
  • Tóm tắt văn bản
  • Vấn đề trả lời câu hỏi

Vui lòng thêm nhiều nhiệm vụ NLP vào danh sách này

Các phương pháp khác nhau để loại bỏ các từ dừng

1. Loại bỏ từ khóa bằng NLTK

NLTK, hay Bộ công cụ ngôn ngữ tự nhiên, là một kho tàng thư viện để xử lý trước văn bản. Đó là một trong những thư viện Python yêu thích của tôi. NLTK có một danh sách các từ khóa được lưu trữ bằng 16 ngôn ngữ khác nhau

Bạn có thể sử dụng mã bên dưới để xem danh sách các từ dừng trong NLTK

import nltk
from nltk.corpus import stopwords
set[stopwords.words['english']]

Bây giờ, để xóa từ khóa bằng NLTK, bạn có thể sử dụng khối mã sau. Đây là cửa sổ mã hóa TRỰC TIẾP để bạn có thể nghịch mã và xem kết quả mà không cần rời khỏi bài viết

Đây là danh sách chúng tôi thu được sau khi token hóa

________số 8

Và danh sách sau khi loại bỏ từ khóa

He determined drop litigation monastry, relinguish claims wood-cuting fishery rihgts. He 
ready becuase rights become much less valuable, indeed vaguest idea wood river question.

Lưu ý rằng kích thước của văn bản đã giảm gần một nửa. Bạn có thể hình dung được tính hữu ích tuyệt đối của việc loại bỏ các từ khóa không?

2. Loại bỏ từ khóa bằng spaCy

spaCy là một trong những thư viện linh hoạt và được sử dụng rộng rãi nhất trong NLP. Chúng tôi có thể xóa các từ dừng khỏi văn bản đã cho một cách nhanh chóng và hiệu quả bằng SpaCy. Nó có một danh sách các từ khóa riêng có thể được nhập dưới dạng STOP_WORDS từ spacy. lang thang. vi. lớp stop_words

Đây là cách bạn có thể xóa từ dừng bằng spaCy trong Python

Đây là danh sách chúng tôi thu được sau khi token hóa

import nltk
nltk.download[]
0

Và danh sách sau khi loại bỏ từ khóa

import nltk
nltk.download[]
1

Một điểm quan trọng cần lưu ý – loại bỏ từ dừng không loại bỏ dấu chấm câu hoặc ký tự xuống dòng. Chúng tôi sẽ cần phải loại bỏ chúng bằng tay

Đọc thêm về spaCy trong bài viết này với những người đồng sáng lập thư viện

3. Loại bỏ từ khóa bằng Gensim

Gensim là một thư viện khá tiện dụng để làm việc với các tác vụ NLP. Trong khi tiền xử lý, gensim cũng cung cấp các phương pháp để loại bỏ các từ khóa. Chúng ta có thể dễ dàng nhập phương thức remove_stopwords từ lớp gensim. phân tích cú pháp. sơ chế

Hãy dùng thử Gensim để xóa các từ khóa trong cửa sổ mã hóa trực tiếp bên dưới

import nltk
nltk.download[]
2

Trong khi sử dụng gensim để loại bỏ từ khóa, chúng ta có thể sử dụng trực tiếp nó trên văn bản thô. Không cần thực hiện mã thông báo trước khi xóa từ dừng. Điều này có thể tiết kiệm cho chúng ta rất nhiều thời gian

Giới thiệu về chuẩn hóa văn bản

Trong bất kỳ ngôn ngữ tự nhiên nào, các từ có thể được viết hoặc nói ở nhiều dạng tùy thuộc vào tình huống. Đó là điều làm cho ngôn ngữ trở thành một phần thú vị trong cuộc sống của chúng ta, phải không?

  • Lisa vừa ăn vừa rửa bát
  • Họ đang ăn mì ở một quán cà phê
  • Bạn không muốn ăn trước khi chúng tôi rời đi?
  • chúng tôi vừa mới ăn sáng
  • Nó cũng ăn trái cây và rau quả

Trong tất cả các câu này, chúng ta có thể thấy rằng từ ăn đã được sử dụng dưới nhiều hình thức. Đối với chúng tôi, thật dễ hiểu rằng ăn uống là hoạt động ở đây. Vì vậy, việc đó là 'ăn', 'ăn' hay 'ăn' không thực sự quan trọng đối với chúng tôi – chúng tôi biết điều gì đang xảy ra

Thật không may, đó không phải là trường hợp của máy. Họ đối xử với những từ này khác nhau. Do đó, chúng ta cần chuẩn hóa chúng thành từ gốc của chúng, đó là “ăn” trong ví dụ của chúng ta

Do đó, chuẩn hóa văn bản là một quá trình chuyển đổi một từ thành một dạng chính tắc duy nhất. Điều này có thể được thực hiện bằng hai quá trình, xuất phát và từ vựng. Hãy hiểu chi tiết chúng là gì

Stemming và Lemmatization là gì?

Từ gốc và từ vựng chỉ đơn giản là chuẩn hóa các từ, có nghĩa là giảm một từ về dạng gốc của nó

Trong hầu hết các ngôn ngữ tự nhiên, một từ gốc có thể có nhiều biến thể. Ví dụ: từ 'play' có thể được sử dụng như 'play', 'played', 'plays', v.v. Bạn có thể nghĩ về các ví dụ tương tự [và có rất nhiều]

Trước tiên hãy hiểu về xuất phát

  • Từ gốc là một kỹ thuật chuẩn hóa văn bản giúp cắt bỏ phần cuối hoặc phần đầu của một từ bằng cách tính đến danh sách các tiền tố hoặc hậu tố phổ biến có thể tìm thấy trong từ đó
  • Đó là một quy trình dựa trên quy tắc thô sơ để loại bỏ các hậu tố [“ing”, “ly”, “es”, “s” v.v.] khỏi một từ

Mặt khác, từ vựng là một quy trình có tổ chức và từng bước để lấy dạng gốc của từ. Nó sử dụng từ vựng [tầm quan trọng của từ trong từ điển] và phân tích hình thái [cấu trúc từ và quan hệ ngữ pháp]

Tại sao chúng ta cần thực hiện Stemming hoặc Lemmatization?

Hãy xem xét hai câu sau đây

  • Anh đang lái xe
  • Anh ấy đã lái xe

Chúng ta có thể dễ dàng nói rằng cả hai câu đều truyền đạt cùng một nghĩa, đó là hoạt động thúc đẩy trong quá khứ. Máy sẽ xử lý cả hai câu khác nhau. Vì vậy, để văn bản có thể hiểu được đối với máy, chúng ta cần thực hiện từ gốc hoặc từ vựng.

Một lợi ích khác của chuẩn hóa văn bản là nó làm giảm số lượng từ duy nhất trong dữ liệu văn bản. Điều này giúp giảm thời gian đào tạo của mô hình học máy [và không phải tất cả chúng ta đều muốn điều đó sao?]

S0, chúng ta nên chọn cái nào hơn?

Thuật toán gốc hoạt động bằng cách cắt hậu tố hoặc tiền tố khỏi từ. Lemmatization là một hoạt động mạnh mẽ hơn vì nó xem xét phân tích hình thái của từ

Lemmatization trả về bổ đề, là từ gốc của tất cả các dạng uốn của nó

Chúng ta có thể nói rằng bắt nguồn từ là một phương pháp nhanh chóng và bẩn thỉu để cắt các từ về dạng gốc của nó trong khi mặt khác, từ vựng là một hoạt động thông minh sử dụng từ điển được tạo ra bởi kiến ​​thức ngôn ngữ chuyên sâu. Do đó, Lemmatization giúp hình thành các tính năng tốt hơn

Phương pháp thực hiện chuẩn hóa văn bản

1. Chuẩn hóa văn bản bằng NLTK

Thư viện NLTK có rất nhiều phương pháp tuyệt vời để thực hiện các bước tiền xử lý dữ liệu khác nhau. Có các phương thức như PorterStemmer[] và WordNetLemmatizer[] để thực hiện từ gốc và từ vựng tương ứng

Hãy xem chúng hoạt động

Nhét đầy

import nltk
nltk.download[]
3____14

Chúng ta có thể thấy rõ sự khác biệt ở đây. Bây giờ, hãy thực hiện từ vựng trên cùng một văn bản

bổ đề

He determined drop litigation monastry, relinguish claims wood-cuting fishery rihgts. He 
ready becuase rights become much less valuable, indeed vaguest idea wood river question.

import nltk
from nltk.corpus import stopwords
set[stopwords.words['english']]
0

Ở đây, v là động từ, a là tính từ và n là danh từ. Bộ bổ trợ từ vựng chỉ bổ sung từ vựng cho những từ khớp với tham số pos của phương pháp bổ trợ từ vựng

Lemmatization được thực hiện trên cơ sở gắn thẻ một phần của lời nói [POS tagging]. Chúng tôi sẽ nói chi tiết về việc gắn thẻ POS trong một bài viết sắp tới

2. Chuẩn hóa văn bản bằng spaCy

spaCy, như chúng ta đã thấy trước đó, là một thư viện NLP tuyệt vời. Nó cung cấp nhiều phương pháp cấp ngành để thực hiện từ vựng. Thật không may, spaCy không có mô-đun để bắt đầu. Để thực hiện từ vựng, hãy kiểm tra đoạn mã dưới đây

import nltk
from nltk.corpus import stopwords
set[stopwords.words['english']]
1

Ở đây -PRON- là ký hiệu cho đại từ có thể dễ dàng loại bỏ bằng các biểu thức chính quy. Lợi ích của spaCy là chúng ta không phải truyền bất kỳ tham số pos nào để thực hiện từ vựng hóa

3. Chuẩn hóa văn bản bằng TextBlob

TextBlob là một thư viện Python được tạo đặc biệt để xử lý trước dữ liệu văn bản. Nó dựa trên thư viện NLTK. Chúng tôi có thể sử dụng TextBlob để thực hiện từ vựng. Tuy nhiên, không có mô-đun để bắt đầu trong TextBlob

Vì vậy, hãy xem cách thực hiện từ vựng bằng TextBlob trong Python

import nltk
from nltk.corpus import stopwords
set[stopwords.words['english']]
2

Giống như chúng ta đã thấy ở trên trong phần NLTK, TextBlob cũng sử dụng gắn thẻ POS để thực hiện từ vựng hóa. Bạn có thể đọc thêm về cách sử dụng TextBlob trong NLP tại đây

Ghi chú kết thúc

Từ dừng đóng một vai trò quan trọng trong các vấn đề như phân tích tình cảm, hệ thống trả lời câu hỏi, v.v. Đó là lý do tại sao việc xóa từ khóa có thể ảnh hưởng nghiêm trọng đến độ chính xác của mô hình của chúng tôi

Như tôi đã đề cập, đây là phần hai trong loạt bài của tôi về 'Làm thế nào để bắt đầu với NLP'. Bạn có thể xem phần 1 về mã thông báo tại đây

Và nếu bạn đang tìm kiếm một nơi để cuối cùng bạn có thể bắt đầu hành trình NLP của mình, thì chúng tôi có khóa học hoàn hảo dành cho bạn

Các từ dừng trong NLP là gì?

Từ dừng là một tập hợp các từ thường được sử dụng trong bất kỳ ngôn ngữ nào. Ví dụ: trong tiếng Anh, “the”, “is” và “and”, sẽ dễ dàng được coi là từ dừng. Trong các ứng dụng khai thác văn bản và NLP, các từ dừng được dùng để loại bỏ các từ không quan trọng, cho phép các ứng dụng tập trung vào các từ quan trọng thay thế .

Từ dừng trong Python là gì?

Ngưng từ. Từ dừng là một từ thường được sử dụng [chẳng hạn như “the”, “a”, “an”, “in”] mà công cụ tìm kiếm đã được lập trình để bỏ qua, cả khi lập chỉ mục các mục để tìm kiếm và khi truy xuất chúng dưới dạng kết quả

Các từ dừng NLTK là gì?

Dừng từ là những từ phổ biến đến mức về cơ bản chúng bị các trình tạo mã thông báo điển hình bỏ qua . Theo mặc định, NLTK [Bộ công cụ ngôn ngữ tự nhiên] bao gồm một danh sách 40 từ dừng, bao gồm. “a”, “an”, “the”, “of”, “in”, v.v. Các từ khóa trong nltk là những từ phổ biến nhất trong dữ liệu.

Stop Words trong lập trình là gì?

Dừng từ là những từ thường được sử dụng được loại trừ khỏi tìm kiếm để giúp lập chỉ mục và phân tích cú pháp các trang web nhanh hơn . Mặc dù hầu hết các công cụ tìm kiếm trên Internet và NLP [xử lý ngôn ngữ tự nhiên] đều sử dụng các từ dừng, nhưng chúng không ngăn người dùng sử dụng chúng. Thay vào đó, các từ chỉ bị bỏ qua khi kết quả tìm kiếm được hiển thị.

Chủ Đề