Cho một câu như:
Complimentary gym access for two for the length of stay ($12 value per person per day)
Cách tiếp cận chung nào tôi có thể thực hiện để xác định từ tập thể dục hoặc truy cập phòng tập thể dục?
Cho một câu như:
Complimentary gym access for two for the length of stay ($12 value per person per day)
Cách tiếp cận chung nào tôi có thể thực hiện để xác định từ tập thể dục hoặc truy cập phòng tập thể dục?
Câu trả lời:
Shallow N atural L anguage P có thể được sử dụng để trích xuất các khái niệm từ câu.
-------------------------------------------
Các bước kỹ thuật NLP nông:
1) Chuyển câu thành chữ thường
2) Xóa từ khóa (đây là những từ phổ biến được tìm thấy trong một ngôn ngữ. Các từ như for, rất, và, của, v.v., là những từ dừng phổ biến)
3) Trích xuất n-gram tức là một chuỗi n mục liên tục từ một chuỗi văn bản đã cho (chỉ cần tăng n, mô hình có thể được sử dụng để lưu trữ nhiều ngữ cảnh hơn)
4) Gán nhãn cú pháp (danh từ, động từ, v.v.)
5) Khai thác kiến thức từ văn bản thông qua phương pháp phân tích ngữ nghĩa / cú pháp, tức là cố gắng giữ lại những từ có trọng số cao hơn trong một câu như Danh từ / Động từ
-------------------------------------------
Hãy kiểm tra kết quả của việc áp dụng các bước trên cho câu đã cho của bạn Complimentary gym access for two for the length of stay ($12 value per person per day)
.
Kết quả 1 gram: phòng tập thể dục, quyền truy cập, thời lượng, lưu trú, giá trị, người, ngày
Summary of step 1 through 4 of shallow NLP:
1-gram PoS_Tag Stopword (Yes/No)? PoS Tag Description
-------------------------------------------------------------------
Complimentary NNP Proper noun, singular
gym NN Noun, singular or mass
access NN Noun, singular or mass
for IN Yes Preposition or subordinating conjunction
two CD Cardinal number
for IN Yes Preposition or subordinating conjunction
the DT Yes Determiner
length NN Noun, singular or mass
of IN Yes Preposition or subordinating conjunction
stay NN Noun, singular or mass
($12 CD Cardinal number
value NN Noun, singular or mass
per IN Preposition or subordinating conjunction
person NN Noun, singular or mass
per IN Preposition or subordinating conjunction
day) NN Noun, singular or mass
Step 4: Retaining only the Noun/Verbs we end up with gym, access, length, stay, value, person, day
Hãy tăng n để lưu trữ nhiều ngữ cảnh hơn và loại bỏ các từ khóa.
Kết quả 2 gram: phòng tập thể dục miễn phí, quyền sử dụng phòng tập thể dục, thời gian lưu trú, giá trị lưu trú
Summary of step 1 through 4 of shallow NLP:
2-gram Pos Tag
---------------------------
access two NN CD
complimentary gym NNP NN
gym access NN NN
length stay NN NN
per day IN NN
per person IN NN
person per NN IN
stay value NN NN
two length CD NN
value per NN IN
Step 5: Retaining only the Noun/Verb combination we end up with complimentary gym, gym access, length stay, stay value
Kết quả 3 gram: truy cập phòng tập thể dục miễn phí, giá trị thời gian lưu trú, người mỗi ngày
Summary of step 1 through 4 of shallow NLP:
3-gram Pos Tag
-------------------------------------
access two length NN CD NN
complimentary gym access NNP NN NN
gym access two NN NN CD
length stay value NN NN NN
per person per IN NN IN
person per day NN IN NN
stay value per NN NN IN
two length stay CD NN NN
value per person NN IN NN
Step 5: Retaining only the Noun/Verb combination we end up with complimentary gym access, length stay value, person per day
Những điều cần nhớ:
Công cụ:
Bạn có thể xem xét sử dụng OpenNLP / StanfordNLP cho việc gắn thẻ Bài phát biểu. Hầu hết các ngôn ngữ lập trình đều có thư viện hỗ trợ cho OpenNLP / StanfordNLP. Bạn có thể chọn ngôn ngữ dựa trên sự thoải mái của bạn. Dưới đây là mã R mẫu mà tôi đã sử dụng để gắn thẻ PoS.
Mã R mẫu:
Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre7') # for 32-bit version
library(rJava)
require("openNLP")
require("NLP")
s <- paste("Complimentary gym access for two for the length of stay $12 value per person per day")
tagPOS <- function(x, ...) {
s <- as.String(x)
word_token_annotator <- Maxent_Word_Token_Annotator()
a2 <- Annotation(1L, "sentence", 1L, nchar(s))
a2 <- annotate(s, word_token_annotator, a2)
a3 <- annotate(s, Maxent_POS_Tag_Annotator(), a2)
a3w <- a3[a3$type == "word"]
POStags <- unlist(lapply(a3w$features, `[[`, "POS"))
POStagged <- paste(sprintf("%s/%s", s[a3w], POStags), collapse = " ")
list(POStagged = POStagged, POStags = POStags)
}
tagged_str <- tagPOS(s)
tagged_str
#$POStagged
#[1] "Complimentary/NNP gym/NN access/NN for/IN two/CD for/IN the/DT length/NN of/IN stay/NN $/$ 12/CD value/NN per/IN person/NN per/IN day/NN"
#
#$POStags
#[1] "NNP" "NN" "NN" "IN" "CD" "IN" "DT" "NN" "IN" "NN" "$" "CD"
#[13] "NN" "IN" "NN" "IN" "NN"
Bài đọc thêm về Shallow & Deep NLP:
Xử lý NLP nông và sâu cho việc học bản thể học: Tổng quan nhanh Bấm vào đây
Tích hợp nông và sâu NLP để khai thác thông tin Bấm vào đây
Bạn cần phân tích cấu trúc câu và trích xuất các loại cú pháp quan tâm tương ứng (trong trường hợp này, tôi nghĩ đó sẽ là cụm danh từ , là một phạm trù ). Để biết chi tiết, xem bài viết Wikipedia tương ứng và chương "Phân tích cấu trúc câu" của cuốn sách NLTK.
Liên quan đến các công cụ phần mềm có sẵn để thực hiện cách tiếp cận nêu trên và hơn thế nữa, tôi khuyên bạn nên xem xét NLTK (nếu bạn thích Python) hoặc phần mềm StanfordNLP (nếu bạn thích Java). Đối với nhiều khung NLP khác, thư viện và lập trình hỗ trợ các ngôn ngữ khác nhau, hãy xem các phần tương ứng (NLP) trong danh sách giám tuyển tuyệt vời này .
Nếu bạn là người dùng R, có rất nhiều thông tin thiết thực tại http://www.rdatamining.com . Nhìn vào các ví dụ khai thác văn bản của họ.
Ngoài ra, hãy xem gói tm.
Đây cũng là một trang tổng hợp tốt- http://www.tapor.ca/