Pendekatan umum untuk mengekstrak teks kunci dari kalimat (nlp)

27

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?

William Falcon
sumber
Lihatlah Termine, dan makalah-makalah yang terkait dengan proyek ini: nactem.ac.uk/software/termine
MrMeritology

Jawaban:

30

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:

  • Rujuk bank Pohon Penn untuk memahami deskripsi tag PoS https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html
  • Bergantung pada data dan konteks bisnis Anda, Anda dapat memutuskan nilai n untuk mengekstrak n-gram dari kalimat
  • Menambahkan kata berhenti spesifik domain akan meningkatkan kualitas konsep / ekstraksi tema
  • Teknik NLP yang dalam akan memberikan hasil yang lebih baik yaitu, daripada n-gram, mendeteksi hubungan dalam kalimat dan mewakili / menyatakan sebagai konstruksi kompleks untuk mempertahankan konteks. Untuk info tambahan, silakan merujuk /stats//a/133680/66708

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

Manohar Swamynathan
sumber
Jawaban sempurna (+1). Hanya satu saran: jika mungkin, berikan literatur atau, setidaknya, referensi umum untuk teknik NLP dangkal yang telah Anda sebutkan.
Aleksandr Blekh
1
Terima kasih banyak. Dua pertanyaan, dapatkah saya melakukan ini dengan nltk? Bisakah saya menggunakan tf-idf untuk melakukan hal yang sama, lalu mengambil kata-kata paling unik (skor tertinggi) sebagai kata kunci saya?
William Falcon
@ Aleksandr Blekh, terima kasih. Saya telah menambahkan tautan bacaan tambahan untuk mempelajari lebih lanjut tentang NLP yang dangkal dan dalam. Semoga ini bisa membantu
Manohar Swamynathan
@ William Falcon, terima kasih. 1) Ya, Anda dapat menggunakan nltk 2) Tentu saja, TF-IDF dapat digunakan Jika Anda mencoba menemukan konsep atau tema di tingkat dokumen.
Manohar Swamynathan
3

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 .

Aleksandr Blekh
sumber
0

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/

Michael Cox
sumber
Tautan tidak dianggap sebagai jawaban yang valid di situs ini. Harap jawab pertanyaan asli di pos Anda dan gunakan tautan untuk melengkapi jawaban Anda.
sheldonkreger