รับประโยคเช่น:
Complimentary gym access for two for the length of stay ($12 value per person per day)
ฉันสามารถใช้วิธีการทั่วไปในการระบุคำว่ายิมหรือการเข้าถึงยิมอย่างไร
รับประโยคเช่น:
Complimentary gym access for two for the length of stay ($12 value per person per day)
ฉันสามารถใช้วิธีการทั่วไปในการระบุคำว่ายิมหรือการเข้าถึงยิมอย่างไร
คำตอบ:
ตื้นN atural L anguage Pเทคนิค rocessing สามารถนำมาใช้กับแนวคิดสารสกัดจากประโยค
-------------------------------------------
ขั้นตอนเทคนิคตื้น NLP:
1) แปลงประโยคเป็นตัวพิมพ์เล็ก
2) ลบ stopwords (คำเหล่านี้เป็นคำทั่วไปที่พบในภาษาคำที่ต้องการมากและเป็นคำ ฯลฯ เป็นคำที่หยุดทั่วไป)
3) แยก n-gram เช่นลำดับที่ต่อเนื่องกันของรายการ n จากลำดับข้อความที่กำหนด (เพิ่ม n, แบบจำลองสามารถใช้เพื่อเก็บบริบทเพิ่มเติม)
4) กำหนดป้ายกำกับประโยค (คำนามคำกริยา ฯลฯ )
5) การดึงความรู้จากข้อความผ่านวิธีการวิเคราะห์ความหมาย / วากยสัมพันธ์เช่นพยายามเก็บคำที่มีน้ำหนักมากขึ้นในประโยคเช่น Noun / Verb
-------------------------------------------
Complimentary gym access for two for the length of stay ($12 value per person per day)
ให้ตรวจสอบผลของการใช้ขั้นตอนข้างต้นเพื่อให้ประโยคของคุณ
ผลการค้นหา 1 กรัม:โรงยิม, การเข้าถึง, ความยาว, การเข้าพัก, คุณค่า, บุคคล, วัน
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
ให้เพิ่ม n เพื่อเก็บบริบทเพิ่มเติมและลบ stopwords
ผลการค้นหาแบบ 2 กรัม:ห้องออกกำลังกายฟรี, สิทธิ์เข้ายิม, ระยะเวลาเข้าพัก, มูลค่าการพัก
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
ผลลัพธ์ 3 กรัม:การเข้าใช้ห้องออกกำลังกายฟรีมูลค่าการพักระยะยาวต่อคน
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
สิ่งที่ต้องจำ:
เครื่องมือ
คุณสามารถพิจารณาใช้ OpenNLP / StanfordNLP เพื่อเป็นส่วนหนึ่งของการติดแท็กคำพูด ภาษาการเขียนโปรแกรมส่วนใหญ่มีห้องสมุดรองรับ OpenNLP / StanfordNLP คุณสามารถเลือกภาษาตามความสะดวกสบายของคุณ ด้านล่างนี้คือตัวอย่างรหัส R ที่ฉันใช้สำหรับการติดแท็ก PoS
ตัวอย่างรหัส R:
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"
อ่านเพิ่มเติมเกี่ยวกับ Shallow & Deep NLP:
การประมวลผล NLP แบบตื้นและลึกสำหรับการเรียนรู้ภววิทยา: ภาพรวมอย่างรวดเร็วคลิกที่นี่
การรวมตื้นและลึก NLP สำหรับการแยกข้อมูลคลิกที่นี่
คุณต้องวิเคราะห์โครงสร้างประโยคและแยกหมวดหมู่ประโยคที่น่าสนใจ (ในกรณีนี้ฉันคิดว่ามันจะเป็นคำนามซึ่งเป็นหมวดวลี ) สำหรับรายละเอียดโปรดดูบทความ Wikipedia ที่เกี่ยวข้องและบท"โครงสร้างการวิเคราะห์ประโยค"ของหนังสือ NLTK
เกี่ยวกับเครื่องมือซอฟต์แวร์ที่มีอยู่สำหรับการใช้วิธีการที่กล่าวถึงข้างต้นและอื่น ๆ ฉันขอแนะนำให้พิจารณาNLTK (ถ้าคุณชอบ Python) หรือซอฟต์แวร์ StanfordNLP (ถ้าคุณชอบ Java) สำหรับเฟรมเวิร์ก NLP อื่น ๆ มากมายไลบรารีและการเขียนโปรแกรมสนับสนุนภาษาต่าง ๆ ดูส่วนที่เกี่ยวข้อง (NLP) ในรายการ curated ที่ยอดเยี่ยมนี้
หากคุณเป็นผู้ใช้ R ที่มีเป็นจำนวนมากของข้อมูลที่เป็นประโยชน์ดีที่http://www.rdatamining.com ดูตัวอย่างการขุดข้อความของพวกเขา
ดูที่แพ็คเกจ tm ด้วย
นี่เป็นไซต์รวมที่ดี - http://www.tapor.ca/