Diberi kalimat seperti:
Complimentary gym access for two for the length of stay ($12 value per person per day)
Pendekatan umum apa yang dapat saya ambil untuk mengidentifikasi kata gym atau akses gym?
Diberi kalimat seperti:
Complimentary gym access for two for the length of stay ($12 value per person per day)
Pendekatan umum apa yang dapat saya ambil untuk mengidentifikasi kata gym atau akses gym?
Jawaban:
Dangkal N atural L anguage P teknik rocessing dapat digunakan untuk mengekstrak konsep-konsep dari kalimat.
-------------------------------------------
Langkah-langkah teknik NLP dangkal:
1) Ubah kalimat menjadi huruf kecil
2) Hapus stopwords (ini adalah kata-kata umum yang ditemukan dalam bahasa. Kata-kata seperti untuk, very, dan, of, are, dll, adalah kata-kata stop yang umum)
3) Ekstrak n-gram yaitu, urutan yang berdekatan dari n item dari urutan teks yang diberikan (cukup meningkatkan n, model dapat digunakan untuk menyimpan lebih banyak konteks)
4) Tetapkan label sintaksis (kata benda, kata kerja, dll.)
5) Ekstraksi pengetahuan dari teks melalui pendekatan analisis semantik / sintaksis, yaitu mencoba mempertahankan kata-kata yang memiliki bobot lebih tinggi dalam kalimat seperti Noun / Verb
-------------------------------------------
Mari kita periksa hasil penerapan langkah-langkah di atas untuk kalimat yang Anda berikan Complimentary gym access for two for the length of stay ($12 value per person per day)
.
1-gram Hasil: gym, akses, panjang, masa inap, nilai, orang, hari
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
Mari kita tingkatkan n untuk menyimpan lebih banyak konteks dan menghapus stopwords.
2-gram Hasil: gym gratis, akses gym, lama menginap, nilai menginap
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-gram Hasil: akses gym gratis, nilai lama menginap, orang per hari
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
Hal-hal untuk diingat:
Alat:
Anda dapat mempertimbangkan menggunakan OpenNLP / StanfordNLP untuk penandaan Part of Speech. Sebagian besar bahasa pemrograman memiliki pustaka pendukung untuk OpenNLP / StanfordNLP. Anda dapat memilih bahasa berdasarkan kenyamanan Anda. Di bawah ini adalah contoh kode R yang saya gunakan untuk penandaan PoS.
Contoh kode 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"
Bacaan tambahan tentang Dallow & Deep NLP:
Pemrosesan NLP Dangkal dan Dalam untuk pembelajaran ontologi: Tinjauan Cepat Klik Di Sini
Mengintegrasikan NLP Dangkal dan Dalam untuk Ekstraksi Informasi Klik Di Sini
Anda perlu menganalisis struktur kalimat dan mengekstrak kategori minat sintaksis yang sesuai (dalam hal ini, saya pikir itu akan menjadi frase kata benda , yang merupakan kategori frase ). Untuk detailnya, lihat artikel Wikipedia yang sesuai dan bab "Menganalisis Struktur Kalimat" dari buku NLTK.
Berkenaan dengan alat perangkat lunak yang tersedia untuk menerapkan pendekatan yang disebutkan di atas dan di luar, saya akan menyarankan untuk mempertimbangkan NLTK (jika Anda lebih suka Python), atau perangkat lunak StanfordNLP (jika Anda lebih suka Java). Untuk banyak kerangka kerja NLP lainnya, perpustakaan dan pemrograman berbagai bahasa mendukung, lihat bagian yang sesuai (NLP) dalam daftar kurasi yang sangat baik ini .
Jika Anda pengguna R, ada banyak informasi praktis yang bagus di http://www.rdatamining.com . Lihatlah contoh penggalian teks mereka.
Juga, lihat paket tm.
Ini juga merupakan situs agregasi yang bagus- http://www.tapor.ca/