Các phần của bài phát biểu trong Python

Part of Speech [POS] là một cách diễn tả chức năng ngữ pháp của một từ. Trong Xử lý ngôn ngữ tự nhiên [NLP], POS là một khối xây dựng thiết yếu của các mô hình ngôn ngữ và diễn giải văn bản. Mặc dù các thẻ POS được sử dụng trong các chức năng cấp cao hơn của NLP, nhưng điều quan trọng là phải tự hiểu chúng và có thể tận dụng chúng cho các mục đích hữu ích trong phân tích văn bản của bạn

Có một hệ thống phân cấp các nhiệm vụ trong NLP [xem danh sách]. Ở phía dưới là phân đoạn câu và từ. Tính năng gắn thẻ POS được xây dựng dựa trên điều đó và tính năng chia cụm từ được xây dựng dựa trên thẻ POS. Đến lượt mình, các thẻ này có thể được sử dụng làm tính năng cho các tác vụ cấp cao hơn, chẳng hạn như xây dựng cây phân tích cú pháp, lần lượt, có thể được sử dụng cho Độ phân giải thực thể được đặt tên, Độ phân giải tham chiếu, Phân tích tình cảm và Trả lời câu hỏi

Có tám [đôi khi chín] phần khác nhau của bài phát biểu bằng tiếng Anh thường được định nghĩa

  1. Danh từ. Một danh từ là tên của một người, địa điểm, sự vật hoặc ý tưởng
  2. đại từ. Đại từ là từ dùng thay cho danh từ
  3. động từ. Một động từ diễn tả hành động hoặc là
  4. Tính từ. Một tính từ sửa đổi hoặc mô tả một danh từ hoặc đại từ
  5. trạng từ. Một trạng từ sửa đổi hoặc mô tả một động từ, một tính từ hoặc một trạng từ khác
  6. giới từ. Giới từ là một từ được đặt trước một danh từ hoặc đại từ để tạo thành một cụm từ bổ nghĩa cho một từ khác trong câu
  7. Sự liên kết. Liên từ nối các từ, cụm từ hoặc mệnh đề
  8. thán từ. Thán từ là từ dùng để bộc lộ cảm xúc
  9. Xác định hoặc Điều. Dấu hiệu ngữ pháp của tính xác định [the] hoặc tính không xác định [a, an]. Đây không phải lúc nào cũng được coi là POS nhưng thường được bao gồm trong thư viện gắn thẻ POS

Khái niệm cơ bản về gắn thẻ POS

Hãy bắt đầu với một số ví dụ đơn giản về gắn thẻ POS với ba thư viện Python phổ biến. NLTK , TextBlob và Spacy. Chúng tôi sẽ làm những điều cơ bản tuyệt đối cho từng và so sánh kết quả

Bắt đầu bằng cách nhập tất cả các thư viện cần thiết

import nltk

from textblob import TextBlob
from textblob.taggers import PatternTagger

import spacy

Đối với các ví dụ của chúng tôi, chúng tôi sẽ sử dụng hai câu với một từ phổ biến, sách, có thể là danh từ hoặc động từ, để kiểm tra mức độ hoạt động của trình gắn thẻ POS trong ngữ cảnh

  • Vui lòng đặt chuyến bay của tôi đến California
  • Tôi đã đọc một cuốn sách rất hay

NLTK

Hãy bắt đầu với thư viện phổ biến nhất cho NLP trong Python;

tokenized_sent = nltk.sent_tokenize["Please book my flight to California"]
[nltk.pos_tag[nltk.word_tokenize[word]] for word in tokenized_sent]

[[['Please', 'NNP'],
  ['book', 'NN'],
  ['my', 'PRP$'],
  ['flight', 'NN'],
  ['to', 'TO'],
  ['California', 'NNP']]]

tokenized_sent = nltk.sent_tokenize["I read a very good book"]
[nltk.pos_tag[nltk.word_tokenize[word]] for word in tokenized_sent]

[[['I', 'PRP'],
  ['read', 'VBP'],
  ['a', 'DT'],
  ['very', 'RB'],
  ['good', 'JJ'],
  ['book', 'NN']]]

Điều chúng tôi nhận thấy ở đây là phần lớn, NLTK nhận dạng đúng từ trong ngữ cảnh;

Ghi chú. Để biết danh sách ý nghĩa của các thẻ, hãy xem Dự án Penn Treebank

văn bảnBlob

Hãy thử một thư viện khác có tên là TextBlob cung cấp một API đơn giản để đi sâu vào các tác vụ xử lý ngôn ngữ tự nhiên [NLP] tiêu chuẩn. Đó là một triển khai Pythonic rất tốt của thư viện NLP và đơn giản hóa một số tác vụ NLP phổ biến. Phần lớn những gì TextBlob làm là bọc NLTK và các thư viện NLP phổ biến khác để giúp chúng dễ sử dụng hơn

blob = TextBlob["Please book my flight to California", pos_tagger=PatternTagger[]]
blob.tags

[['Please', 'VB'],
 ['book', 'NN'],
 ['my', 'PRP$'],
 ['flight', 'NN'],
 ['to', 'TO'],
 ['California', 'NNP']]

blob = TextBlob["I read a very good book", pos_tagger=PatternTagger[]]
blob.tags

________số 8_______

Lưu ý việc sử dụng

[[['Please', 'NNP'],
  ['book', 'NN'],
  ['my', 'PRP$'],
  ['flight', 'NN'],
  ['to', 'TO'],
  ['California', 'NNP']]]
1 trong quá trình khởi tạo Blob. Mặc định là sử dụng trình gắn thẻ của NLTK, mang lại kết quả tương tự như trên. Điều này cho phép chúng tôi thử một Trình gắn thẻ POS khác và kiểm tra hiệu suất của nó. Chúng ta có thể thấy rằng TextBlob xác định chính xác Vui lòng ở dạng Động từ lần này nhưng vẫn bỏ lỡ Sách ở dạng Động từ trong câu đầu tiên

Spacy

Spacy là chiếc hiện đại và cao cấp nhất trong 3 chiếc này. Nó cực kỳ mạnh mẽ cho hàng tấn nhiệm vụ NLP và cho phép tùy chỉnh nếu cần thêm sức mạnh. Đây hiện là thư viện NLP yêu thích của tôi và hãy kiểm tra nó bằng các câu của chúng tôi

doc = nlp["Please book my flight to California"]
for token in doc:
    print[token.text, token.pos_]

tokenized_sent = nltk.sent_tokenize["Please book my flight to California"]
[nltk.pos_tag[nltk.word_tokenize[word]] for word in tokenized_sent]
0

tokenized_sent = nltk.sent_tokenize["Please book my flight to California"]
[nltk.pos_tag[nltk.word_tokenize[word]] for word in tokenized_sent]
1

tokenized_sent = nltk.sent_tokenize["Please book my flight to California"]
[nltk.pos_tag[nltk.word_tokenize[word]] for word in tokenized_sent]
2

Ở đây, chúng tôi thấy rằng Spacy đã gắn thẻ chính xác tất cả các từ của chúng tôi và nó đã xác định Vui lòng thích Thán từ trái ngược với Động từ, chính xác hơn và cũng xác định Sách là Động từ trong câu đầu tiên

Mỗi thư viện này đều có ưu và nhược điểm. Tôi tin rằng bạn nên bắt đầu với NLTK để hiểu cách thức hoạt động của nó, đặc biệt là vì nó có rất nhiều sự hỗ trợ mạnh mẽ của các tập đoàn khác nhau. TextBlob tuyệt vời khi bạn muốn sự đơn giản trong một số tác vụ NLP và Spacy khi bạn muốn một trong những thư viện NLP mạnh mẽ nhất xung quanh

Hãy xem Sê-ri NLTK tuyệt vời này với Python cho Ngôn ngữ tự nhiên từ PythonProgramming. net

Phân tích giọng nói của khách hàng với các phần của bài phát biểu

Một trong những nhiệm vụ phổ biến nhất được thực hiện với NLP là phân tích phản hồi của khách hàng từ nhiều nguồn khác nhau và xác định những gì khách hàng đang nói về sản phẩm hoặc dịch vụ của bạn. Loại phân tích này được gọi là Phân tích Tiếng nói của Khách hàng hoặc VOC

Có nhiều cách để thực hiện phân tích VOC. Từ Phân tích tình cảm đến Lập mô hình chủ đề, một phương pháp bạn có thể sử dụng là gắn thẻ một phần của bài phát biểu để thu hẹp nội dung khách hàng đang nói và cách họ nói về sản phẩm và dịch vụ của bạn

Văn bản cho phân tích của bạn có thể đến từ phản hồi khảo sát, phiếu hỗ trợ, nhận xét trên Facebook, Tweet, cuộc trò chuyện, email, bản ghi cuộc gọi và đánh giá trực tuyến. Giả sử bạn có một bộ sưu tập các bài đánh giá của khách hàng. Một trong những điều bạn có thể muốn xác định là tất cả các sản phẩm mà mọi người đang nói đến. Bạn có thể có sự phân loại hoàn hảo các sản phẩm của mình trong cơ sở dữ liệu, nhưng nếu bạn không có ở cấp độ chi tiết mà bạn cần thì sao?

Sau khi nhập tập dữ liệu, chúng tôi có thể tạo DataFrame mới của tất cả các từ và thẻ POS của chúng. Hàm bên dưới thực hiện từng đánh giá và xác định thẻ POS cho từng từ;

tokenized_sent = nltk.sent_tokenize["Please book my flight to California"]
[nltk.pos_tag[nltk.word_tokenize[word]] for word in tokenized_sent]
3

Tiếp theo, chúng ta có thể chạy chức năng trên một tập hợp con của các đánh giá. Vì chúng tôi đang sử dụng các từ riêng lẻ nên số lượng có thể lên tới hàng triệu và rất có thể chúng tôi không cần toàn bộ tập dữ liệu

tokenized_sent = nltk.sent_tokenize["Please book my flight to California"]
[nltk.pos_tag[nltk.word_tokenize[word]] for word in tokenized_sent]
4

tokenized_sent = nltk.sent_tokenize["Please book my flight to California"]
[nltk.pos_tag[nltk.word_tokenize[word]] for word in tokenized_sent]
5

Tiếp theo, chúng tôi có thể nhóm và đếm từng thẻ POS để xem những thẻ thường xuyên nhất

tokenized_sent = nltk.sent_tokenize["Please book my flight to California"]
[nltk.pos_tag[nltk.word_tokenize[word]] for word in tokenized_sent]
6

Tuyệt vời. Chúng tôi có rất nhiều thẻ và từ. Tuy nhiên, những điều này không cho chúng ta biết nhiều về bản thân chúng, cho chúng ta cái nhìn về sự phân bố của các thẻ khác nhau. Tuy nhiên, bây giờ chúng tôi có thể sử dụng các thẻ của mình để rút ra các từ có thể đại diện cho sản phẩm so với. những từ đại diện cho các từ khác trong bài đánh giá của chúng tôi. Đối với điều này, chúng ta có thể lọc chỉ Danh từ

tokenized_sent = nltk.sent_tokenize["Please book my flight to California"]
[nltk.pos_tag[nltk.word_tokenize[word]] for word in tokenized_sent]
7

tokenized_sent = nltk.sent_tokenize["Please book my flight to California"]
[nltk.pos_tag[nltk.word_tokenize[word]] for word in tokenized_sent]
8

Nhìn kìa. Chúng tôi có 15 từ hàng đầu được sử dụng trong tập hợp con các bài đánh giá này và hầu hết chúng trông giống như danh mục sản phẩm. Điều gì sẽ xảy ra nếu bây giờ chúng ta xem xét các Tính từ hàng đầu cho cùng một tập hợp con các đánh giá?

tokenized_sent = nltk.sent_tokenize["Please book my flight to California"]
[nltk.pos_tag[nltk.word_tokenize[word]] for word in tokenized_sent]
9

[[['Please', 'NNP'],
  ['book', 'NN'],
  ['my', 'PRP$'],
  ['flight', 'NN'],
  ['to', 'TO'],
  ['California', 'NNP']]]
0

tada 🎉. những từ được sử dụng nhiều nhất mô tả cách khách hàng nói về sản phẩm của chúng tôi. Chúng tôi đã mất những từ tích cực nhưng cũng có một số từ có thể đáng để xem xét. Những thứ như nhỏ và nhỏ có khả năng nói lên vấn đề về kích thước khi một số quần áo không vừa vặn. Người quản lý sản phẩm có thể lấy thông tin này và tìm hiểu sâu hơn về các bài đánh giá có đề cập đến từ này

Như đã đề cập, có nhiều cách khác để phân tích văn bản có thể tốt hơn, chẳng hạn như Phân tích tình cảm và Lập mô hình chủ đề. Tuy nhiên, đây là một cách thú vị để áp dụng gắn thẻ POS trong trường hợp sử dụng thực tế và thậm chí được kết hợp với các công cụ NLP khác để giúp bạn tận dụng tối đa phản hồi của khách hàng

  • Tất cả mã cho phân tích này đều có sẵn trên GitHub
  • Tôi đã thực hiện đánh giá chuyên sâu về tập dữ liệu này mà bạn có thể tìm thấy trong Danh mục đầu tư của tôi dưới phần Đánh giá quần áo nơi tôi trình bày phân tích bổ sung tận dụng các kỹ thuật NLP và ML

Nếu bạn thích những gì bạn đọc, hãy đăng ký nhận bản tin của tôi và bạn sẽ nhận được bảng cheat của tôi về Python, Học máy [ML], Xử lý ngôn ngữ tự nhiên [NLP], SQL, v.v. Bạn sẽ nhận được email mỗi khi bài viết mới được đăng

Các phần của ngôn ngữ Python là gì?

Cú pháp Python cơ bản .
Bình luận
Biến
từ khóa
Các kiểu dữ liệu tích hợp
Câu điều kiện
vòng lặp
Chức năng

Một phần của gắn thẻ bài phát biểu trong Python là gì?

Gắn thẻ POS là kỹ thuật được sử dụng trong Xử lý ngôn ngữ tự nhiên . Nó phân loại các mã thông báo trong văn bản thành danh từ, động từ, tính từ, v.v. Trong Python, bạn có thể sử dụng thư viện NLTK cho mục đích này. nhập nltk.

một phần của lời nói NLTK là gì?

Tóm tắt. Gắn thẻ POS trong NLTK là quá trình đánh dấu các từ ở định dạng văn bản cho một phần cụ thể của bài phát biểu dựa trên định nghĩa và ngữ cảnh của nó . Một số ví dụ về gắn thẻ NLTK POS là. CC, CD, EX, JJ, MD, NNP, PDT, PRP$, ĐẾN, v.v. Trình gắn thẻ POS được sử dụng để gán thông tin ngữ pháp của từng từ trong câu.

Một phần của bài phát biểu trong NLP là gì?

Gắn thẻ một phần của lời nói [POS] là một quy trình Xử lý ngôn ngữ tự nhiên phổ biến đề cập đến phân loại các từ trong văn bản [ngữ liệu] tương ứng với một phần cụ thể của lời nói, . .

Chủ Đề