Dokumen ini memberikan panduan dasar-dasar penggunaan Cloud Natural Language API. Panduan konseptual ini membahas jenis permintaan yang dapat Anda buat ke Natural Language API, cara membuat permintaan tersebut, dan cara menangani responsnya. Sebaiknya semua pengguna Natural Language API membaca panduan ini dan salah satu tutorial terkait sebelum mempelajari API itu sendiri.
Fitur Natural Language
Natural Language API memiliki beberapa metode untuk melakukan analisis dan anotasi pada teks Anda. Setiap tingkat analisis memberikan informasi berharga untuk pemahaman bahasa. Metode tersebut tercantum di bawah ini:
Analisis sentimen memeriksa teks yang diberikan dan mengidentifikasi pendapat emosional yang berlaku dalam teks, terutama untuk menentukan sikap penulis sebagai positif, negatif, atau netral. Analisis sentimen dilakukan melalui metode
analyzeSentiment
.Analisis entity memeriksa teks yang diberikan untuk menemukan entity umum (Kata benda yang tepat seperti tokoh masyarakat, bangunan terkenal, dan sebagainya. Kata benda umum seperti restoran, stadion, dan sebagainya.) dan menampilkan informasi tentang entitas tersebut. Analisis entity dilakukan dengan metode
analyzeEntities
.Analisis sentimen entitas memeriksa teks yang diberikan untuk menemukan entitas umum (kata benda properti dan kata benda umum), menampilkan informasi tentang entitas tersebut, dan mengidentifikasi pendapat emosional yang berlaku tentang entitas dalam teks, terutama untuk menentukan sikap penulis terhadap entitas sebagai positif, negatif, atau netral. Analisis entity dilakukan dengan metode
analyzeEntitySentiment
.Analisis sintaksis mengekstrak informasi linguistik, memecah teks yang diberikan menjadi serangkaian kalimat dan token (umumnya, batas kata), serta memberikan analisis lebih lanjut pada token tersebut. Analisis Sintaksis dilakukan dengan metode
analyzeSyntax
.Klasifikasi konten menganalisis konten teks dan menampilkan kategori konten untuk konten tersebut. Klasifikasi konten dilakukan dengan menggunakan metode
classifyText
.
Setiap panggilan API juga mendeteksi dan menampilkan bahasa, jika bahasa tidak ditentukan oleh pemanggil dalam permintaan awal.
Selain itu, jika Anda ingin melakukan beberapa operasi pemrosesan bahasa alami pada
teks tertentu hanya dengan menggunakan satu panggilan API, permintaan annotateText
juga dapat digunakan
untuk melakukan analisis sentimen dan analisis entity.
Coba sendiri
Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa Natural Language dalam skenario dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
Coba Natural Language gratisPermintaan Natural Language dasar
Natural Language API adalah REST API, dan terdiri dari permintaan dan respons JSON. Permintaan Analisis Entity JSON Natural Language sederhana muncul di bawah:
{ "document":{ "type":"PLAIN_TEXT", "language_code": "EN", "content":"'Lawrence of Arabia' is a highly rated film biography about British Lieutenant T. E. Lawrence. Peter O'Toole plays Lawrence in the film." }, "encodingType":"UTF8" }
Kolom-kolom ini dijelaskan di bawah:
document
berisi data untuk permintaan ini, yang terdiri dari sub-kolom berikut:type
- jenis dokumen (HTML
atauPLAIN_TEXT
)language
- (opsional) bahasa teks dalam permintaan. Jika tidak ditentukan, bahasa akan otomatis terdeteksi. Untuk mengetahui informasi tentang bahasa yang didukung oleh Natural Language API, lihat Dukungan Bahasa. Bahasa yang tidak didukung akan menampilkan error dalam respons JSON.content
ataugcsContentUri
yang berisi teks yang akan dievaluasi. Jika meneruskancontent
, teks ini disertakan langsung dalam permintaan JSON (seperti yang ditunjukkan di atas). Jika meneruskangcsContentUri
, kolom harus berisi URI yang mengarah ke konten teks dalam Google Cloud Storage.
- encodingType -
(wajib) skema encoding yang digunakan untuk menghitung offset karakter yang ditampilkan ke dalam
teks, yang harus cocok dengan encoding teks yang diteruskan.
Jika parameter ini tidak ditetapkan, permintaan tidak akan error, tetapi semua
offset tersebut akan ditetapkan ke
-1
.
Menentukan konten teks
Saat meneruskan permintaan Natural Language API, Anda menentukan teks yang akan diproses dengan salah satu dari dua cara:
- Meneruskan teks langsung dalam kolom
content
. - Meneruskan URI Google Cloud Storage dalam kolom
gcsContentUri
.
Dalam kedua kasus tersebut, Anda harus memastikan untuk tidak melebihi batas yang diizinkan oleh Batas Konten. Perhatikan bahwa batas konten ini adalah berdasarkan byte, bukan karakter; oleh karena itu, panjang karakter bergantung pada encoding teks Anda.
Permintaan di bawah merujuk ke file Google Cloud Storage yang berisi Pidato Gettysburg:
{ "document":{ "type":"PLAIN_TEXT", "language": "EN", "gcsContentUri":"gs://cloud-samples-tests/natural-language/gettysburg.txt" }, }
Analisis sentimen
Analisis sentimen mencoba menentukan sikap keseluruhan (positif atau negatif) yang dinyatakan dalam teks. Sentimen diwakili oleh nilai numerik
score
dan magnitude
.
Kolom respons analisis sentimen
Contoh respons analyzeSentiment
terhadap Pidato Gettysburg ditampilkan di bawah ini:
{ "documentSentiment": { "score": 0.2, "magnitude": 3.6 }, "language_code": "en", "sentences": [ { "text": { "content": "Four score and seven years ago our fathers brought forth on this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal.", "beginOffset": 0 }, "sentiment": { "magnitude": 0.8, "score": 0.8 } }, ... }
Nilai kolom ini dijelaskan di bawah:
documentSentiment
berisi sentimen keseluruhan dokumen, yang terdiri dari kolom berikut:score
sentimen berkisar antara-1.0
(negatif) dan1.0
(positif) serta sesuai dengan kecenderungan emosional keseluruhan teks.magnitude
menunjukkan kekuatan emosi secara keseluruhan (positif dan negatif) dalam teks yang diberikan, antara0.0
dan+inf
. Tidak sepertiscore
,magnitude
tidak dinormalisasi untukdocumentSentiment
; setiap ekspresi emosi dalam teks (baik positif maupun negatif) berkontribusi padamagnitude
teks (sehingga blok teks yang lebih panjang dapat memiliki besaran yang lebih besar).
language_code
berisi bahasa dokumen, baik yang diteruskan dalam permintaan awal, atau yang terdeteksi otomatis jika tidak ada.language_supported
berisi nilai boolean untuk mengidentifikasi apakah bahasa tersebut didukung secara resmisentences
berisi daftar kalimat yang diekstrak dari dokumen asli, yang berisi:sentiment
berisi nilai sentimen tingkat kalimat yang dilampirkan ke setiap kalimat, yang berisiscore
antara-1.0
(negatif) dan1.0
(positif) serta nilaimagnitude
antara0.0
dan1.0
. Perhatikan bahwamagnitude
untuksentences
dinormalisasi.
Nilai sentimen 0.2
untuk Pidato Gettysburg menunjukkan sedikit
positif dalam emosi, sedangkan nilai besarnya 3.6
menunjukkan dokumen
yang relatif emosional, mengingat ukurannya yang kecil (sekitar satu
paragraf). Perhatikan bahwa kalimat pertama pidato Gettysburg berisi score
positif yang sangat tinggi, yaitu 0.8
.
Menafsirkan nilai analisis sentimen
Skor sentimen dokumen menunjukkan emosi keseluruhan dokumen. Besarnya sentimen dokumen menunjukkan seberapa banyak konten emosional yang ada dalam dokumen, dan nilai ini sering kali sebanding dengan panjang dokumen.
Penting untuk diperhatikan bahwa Natural Language API menunjukkan perbedaan antara emosi positif dan negatif dalam dokumen, tetapi tidak mengidentifikasi emosi positif dan negatif tertentu. Misalnya, "marah" dan "sedih" dianggap sebagai emosi negatif. Namun, saat Natural Language API menganalisis teks yang dianggap "marah", atau teks yang dianggap "sedih", respons hanya menunjukkan bahwa sentimen dalam teks tersebut negatif, bukan "sedih" atau "marah".
Dokumen dengan skor netral (sekitar 0.0
) dapat menunjukkan dokumen dengan emosi rendah, atau dapat menunjukkan emosi campuran, dengan nilai positif dan negatif tinggi yang saling membatalkan. Umumnya, Anda dapat menggunakan nilai magnitude
untuk membedakan kasus ini, karena dokumen yang benar-benar netral akan memiliki nilai
magnitude
yang rendah, sedangkan dokumen campuran akan memiliki nilai magnitudo yang lebih tinggi.
Saat membandingkan dokumen satu sama lain (terutama dokumen dengan panjang yang berbeda), pastikan untuk menggunakan nilai magnitude
untuk mengalibrasi skor Anda, karena nilai tersebut dapat membantu Anda mengukur jumlah konten emosional yang relevan.
Diagram di bawah menunjukkan beberapa contoh nilai dan cara menafsirkannya:
Sentimen | Nilai Contoh |
---|---|
Sangat Positif* | "score" : 0.8, "magnitude" : 3.0 |
Jelas Negatif* | "score" : -0,6, "magnitude" : 4,0 |
Netral | "score" : 0,1, "magnitude" : 0,0 |
Campuran | "score" : 0.0, "magnitude" : 4.0 |
* Sentimen “jelas positif” dan “jelas negatif” bervariasi untuk berbagai kasus penggunaan dan pelanggan. Anda mungkin menemukan hasil yang berbeda untuk skenario tertentu. Sebaiknya tentukan nilai minimum yang sesuai untuk Anda, lalu sesuaikan nilai minimum setelah menguji dan memverifikasi hasilnya. Misalnya, Anda dapat menentukan nilai minimum skor di atas 0,25 sebagai positif jelas, lalu mengubah nilai minimum skor menjadi 0,15 setelah meninjau data dan hasil Anda serta menemukan bahwa skor dari 0,15-0,25 juga harus dianggap positif.
Analisis entity
Analisis Entity memberikan informasi tentang entity dalam teks, yang umumnya merujuk pada "benda" bernama seperti individu terkenal, landmark, objek umum, dll.
Entitas secara luas terbagi dalam dua kategori: kata benda properti yang dipetakan ke entitas unik (orang, tempat, dll. tertentu) atau kata benda umum (juga disebut "nominal" dalam pemrosesan bahasa alami). Praktik umum yang baik untuk diikuti adalah jika sesuatu adalah kata benda, maka memenuhi syarat sebagai "entitas". Entitas ditampilkan sebagai offset yang diindeks ke dalam teks asli.
Permintaan Analisis Entity harus meneruskan argumen encodingType
, sehingga offset yang ditampilkan dapat ditafsirkan dengan benar.
Kolom respons analisis entity
Analisis entity menampilkan sekumpulan entity yang terdeteksi, dan parameter yang terkait dengan entity tersebut, seperti jenis entity, relevansi entity dengan keseluruhan teks, dan lokasi dalam teks yang merujuk ke entity yang sama.
Respons analyzeEntities
terhadap permintaan entitas adalah
seperti di bawah:
{ "entities": [ { "name": "British", "type": "LOCATION", "metadata": {}, "mentions": [ { "text": { "content": "British", "beginOffset": 58 }, "type": "PROPER", "probability": 0.941 } ] }, { "name": "Lawrence", "type": "PERSON", "metadata": {}, "mentions": [ { "text": { "content": "Lawrence", "beginOffset": 113 }, "type": "PROPER", "probability": 0.914 } ] }, { "name": "Lawrence of Arabia", "type": "WORK_OF_ART", "metadata": {}, "mentions": [ { "text": { "content": "Lawrence of Arabia", "beginOffset": 0 }, "type": "PROPER", "probability": 0.761 } ] }, { "name": "Lieutenant", "type": "PERSON", "metadata": {}, "mentions": [ { "text": { "content": "Lieutenant", "beginOffset": 66 }, "type": "COMMON", "probability": 0.927 } ] }, { "name": "Peter O Toole", "type": "PERSON", "metadata": {}, "mentions": [ { "text": { "content": "Peter O Toole", "beginOffset": 93 }, "type": "PROPER", "probability": 0.907 } ] }, { "name": "T. E. Lawrence", "type": "PERSON", "metadata": {}, "mentions": [ { "text": { "content": "T. E. Lawrence", "beginOffset": 77 }, "type": "PROPER", "probability": 0.853 } ] }, { "name": "film", "type": "WORK_OF_ART", "metadata": {}, "mentions": [ { "text": { "content": "film", "beginOffset": 129 }, "type": "COMMON", "probability": 0.805 } ] }, { "name": "film biography", "type": "WORK_OF_ART", "metadata": {}, "mentions": [ { "text": { "content": "film biography", "beginOffset": 37 }, "type": "COMMON", "probability": 0.876 } ] } ], "languageCode": "en", "languageSupported": true }
Perhatikan bahwa Natural Language API menampilkan entitas untuk "Lawrence of Arabia" (film) dan "T.E. Lawrence" (orang). Analisis entity berguna untuk membedakan entity serupa seperti "Lawrence" dalam kasus ini.
Kolom yang digunakan untuk menyimpan parameter entitas tercantum di bawah:
type
menunjukkan jenis entitas ini (misalnya, jika entitas adalah orang, lokasi, barang konsumen, dll.) Informasi ini membantu membedakan dan/atau memperjelas entitas, serta dapat digunakan untuk menulis pola atau mengekstrak informasi. Misalnya, nilaitype
dapat membantu membedakan entitas dengan nama serupa seperti “Lawrence of Arabia”, yang diberi tag sebagaiWORK_OF_ART
(film), dari “T.E. Lawrence”, yang diberi tag sebagaiPERSON
, misalnya. (Lihat Jenis Entitas untuk informasi selengkapnya.)metadata
berisi informasi sumber tentang repositori pengetahuan entitas Repositori tambahan dapat diekspos pada masa mendatang.mentions
menunjukkan posisi offset dalam teks tempat entitas disebutkan. Informasi ini dapat berguna jika Anda ingin menemukan semua penyebutan orang bernama “Lawrence” dalam teks, tetapi bukan judul film. Anda juga dapat menggunakan sebutan untuk mengumpulkan daftar alias entitas, seperti “Lawrence”, yang merujuk pada entitas yang sama, “T.E. Lawrence”. Sebutan entitas dapat berupa salah satu dari dua jenis:PROPER
atauCOMMON
. Entity kata benda khusus untuk "Lawrence of Arabia", misalnya, dapat disebutkan secara langsung sebagai judul film, atau sebagai kata benda umum ("biografi film" T.E. Lawrence).
Analisis sentimen entity
Analisis sentimen entity menggabungkan analisis entity dan analisis sentimen serta mencoba menentukan sentimen (positif atau negatif) yang diekspresikan tentang entity dalam teks. Sentimen entitas diwakili oleh nilai skor dan besaran numerik serta ditentukan untuk setiap penyebutan entitas. Skor tersebut kemudian digabungkan menjadi skor dan magnitude sentimen keseluruhan untuk suatu entitas.
Permintaan analisis sentimen entity
Permintaan Analisis Sentimen Entity dikirim ke Natural Language API melalui penggunaan
metode analyzeEntitySentiment
dalam bentuk berikut:
{ "document":{ "type":"PLAIN_TEXT", "content":"I love R&B music. Marvin Gaye is the best. 'What's Going On' is one of my favorite songs. It was so sad when Marvin Gaye died." }, "encodingType":"UTF8" }
Anda dapat menentukan parameter language
opsional dengan permintaan yang
mengidentifikasi kode bahasa untuk teks dalam parameter content
.
Jika Anda tidak menentukan parameter
language
, Natural Language API akan otomatis mendeteksi
bahasa untuk konten permintaan Anda.
Untuk mengetahui informasi tentang bahasa yang didukung oleh Natural Language API, lihat Dukungan Bahasa.
Respons analisis sentimen entity
Natural Language API memproses teks yang diberikan untuk mengekstrak entity dan menentukan sentimen. Permintaan Analisis Sentimen Entitas menampilkan respons yang berisi entities
yang ditemukan dalam konten dokumen, entri mentions
untuk setiap kali entitas disebutkan, dan nilai score
dan magnitude
numerik untuk setiap penyebutan, seperti yang dijelaskan dalam Menafsirkan nilai analisis sentimen. Nilai score
dan magnitude
keseluruhan untuk suatu entity adalah gabungan dari nilai score
dan magnitude
spesifik untuk setiap penyebutan entity tersebut. Nilai
score
dan magnitude
untuk entity dapat berupa 0
, jika sentimen dalam teks rendah, sehingga menghasilkan magnitude
0, atau sentimennya campuran, sehingga menghasilkan score
0.
{ "entities": [ { "name": "R&B music", "type": "WORK_OF_ART", "metadata": {}, "salience": 0.5306305, "mentions": [ { "text": { "content": "R&B music", "beginOffset": 7 }, "type": "COMMON", "sentiment": { "magnitude": 0.9, "score": 0.9 } } ], "sentiment": { "magnitude": 0.9, "score": 0.9 } }, { "name": "Marvin Gaye", "type": "PERSON", "metadata": { "mid": "/m/012z8_", "wikipedia_url": "http://en.wikipedia.org/wiki/Marvin_Gaye" }, "salience": 0.21584158, "mentions": [ { "text": { "content": "Marvin Gaye", "beginOffset": 18 }, "type": "PROPER", "sentiment": { "magnitude": 0.4, "score": 0.4 } }, { "text": { "content": "Marvin Gaye", "beginOffset": 138 }, "type": "PROPER", "sentiment": { "magnitude": 0.2, "score": -0.2 } } ], "sentiment": { "magnitude": 0.6, "score": 0.1 } }, ... ], "language": "en" }
Untuk contohnya, lihat Menganalisis Sentimen Entity.
Analisis sintaksis
Natural Language API menyediakan serangkaian alat canggih untuk menganalisis dan mengurai teks melalui analisis sintaksis. Untuk melakukan analisis sintaksis, gunakan metode
analyzeSyntax
.
Analisis Sintaksis terdiri dari operasi berikut:
- Ekstraksi kalimat memecah aliran teks menjadi serangkaian kalimat.
- Tokenisasi memecah aliran teks menjadi serangkaian token, dengan setiap token biasanya sesuai dengan satu kata.
- Kemudian, Natural Language API memproses token dan, menggunakan lokasinya dalam kalimat, menambahkan informasi sintaksis ke token.
Dokumentasi lengkap tentang kumpulan token sintaksis ada dalam panduan Hierarki Dependensi & Morfologi.
Permintaan analisis sintaksis
Permintaan Analisis Sintaksis dikirim ke Natural Language API melalui penggunaan
metode analyzeSyntax
dalam bentuk berikut:
{ "document":{ "type":"PLAIN_TEXT", "content":"Ask not what your country can do for you, ask what you can do for your country." }, "encodingType":"UTF8" }
Respons analisis sintaksis
Natural Language API memproses teks yang diberikan untuk mengekstrak kalimat dan token. Permintaan Analisis Sintaksis menampilkan respons yang berisi
sentences
dan tokens
dalam bentuk berikut:
{ "sentences": [ ... Array of sentences with sentence information ], "tokens": [ ... Array of tokens with token information ] }
Ekstraksi kalimat
Saat melakukan analisis sintaksis, Natural Language API menampilkan array kalimat yang diekstrak dari teks yang diberikan, dengan setiap kalimat berisi kolom berikut dalam induk text
:
beginOffset
yang menunjukkan offset karakter (berbasis nol) dalam teks yang diberikan tempat kalimat dimulai. Perhatikan bahwa offset ini dihitung menggunakanencodingType
yang diteruskan.content
yang berisi teks lengkap kalimat yang diekstrak.
Misalnya, elemen sentences
berikut diterima untuk permintaan Analisis Sintaksis Pidato Gettysburg:
{ "sentences": [ { "text": { "content": "Four score and seven years ago our fathers brought forth on this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal.", "beginOffset": 0 } }, { "text": { "content": "Now we are engaged in a great civil war, testing whether that nation or any nation so conceived and so dedicated can long endure.", "beginOffset": 175 } }, ... ... { "text": { "content": "It is rather for us to be here dedicated to the great task remaining before us--that from these honored dead we take increased devotion to that cause for which they gave the last full measure of devotion--that we here highly resolve that these dead shall not have died in vain, that this nation under God shall have a new birth of freedom, and that government of the people, by the people, for the people shall not perish from the earth.", "beginOffset": 1002 } } ], "language": "en" }
Permintaan analisis sintaksis ke Natural Language API juga akan menyertakan serangkaian token. Anda dapat menggunakan informasi yang terkait dengan setiap token untuk melakukan analisis lebih lanjut pada kalimat yang ditampilkan. Informasi selengkapnya tentang token ini dapat ditemukan dalam panduan Hierarki Dependensi & Morfologi.
Tokenisasi
Metode analyzeSyntax
juga mengubah teks menjadi serangkaian token, yang sesuai dengan elemen tekstual yang berbeda (batas kata) dari konten yang diteruskan. Proses yang digunakan Natural Language API untuk mengembangkan kumpulan token ini dikenal sebagai tokenisasi.
Setelah token ini diekstrak, Natural Language API akan memprosesnya untuk menentukan bagian ucapan (termasuk informasi morfologi) dan lemma yang terkait. Selain itu, token dievaluasi dan ditempatkan dalam pohon dependensi, yang memungkinkan Anda menentukan makna sintaksis token, dan menggambarkan hubungan token satu sama lain, dan kalimat yang memuatnya. Informasi sintaksis dan morfologi yang terkait dengan token ini berguna untuk memahami struktur sintaksis kalimat dalam Natural Language API.
Kumpulan kolom token yang ditampilkan dalam respons JSON analisis sintaksis muncul di bawah:
text
berisi data teks yang terkait dengan token ini, dengan kolom turunan berikut:beginOffset
berisi offset karakter (berbasis nol) dalam teks yang diberikan. Perhatikan bahwa meskipun dependensi (dijelaskan di bawah) hanya ada dalam kalimat, offset token diposisikan dalam teks secara keseluruhan. Perhatikan bahwa offset ini dihitung menggunakanencodingType
yang diteruskan.content
berisi konten tekstual sebenarnya dari teks asli.
partOfSpeech
memberikan informasi tata bahasa, termasuk informasi morfologi, tentang token, seperti kala, orang, jumlah, gender, dll. token. (Untuk informasi yang lebih lengkap tentang kolom ini, lihat panduan Pohon Morfologi & Ketergantungan.)lemma
berisi kata "dasar" yang menjadi dasar kata ini, yang memungkinkan Anda mengkanonisasi penggunaan kata dalam teks. Misalnya, kata "menulis", "penulisan", "menulis", dan "tertulis" semuanya didasarkan pada lemma yang sama ("menulis"). Selain itu, bentuk jamak dan tunggal didasarkan pada lema: "rumah" dan "rumah-rumah" mengacu pada bentuk yang sama. (Lihat Lemma (morfologi).)Kolom
dependencyEdge
mengidentifikasi hubungan antara kata-kata dalam kalimat yang berisi token melalui tepi dalam pohon berarah. Informasi ini dapat bermanfaat untuk terjemahan, ekstraksi informasi, dan ringkasan. (Panduan Hierarki Dependensi & Morfologi berisi informasi yang lebih mendetail tentang penguraian dependensi.) Setiap kolomdependencyEdge
berisi kolom turunan berikut:headTokenIndex
memberikan nilai indeks (berbasis nol) "token induk" dalam kalimat yang mencakup token ini. Token tanpa induk mengindeks dirinya sendiri.label
memberikan jenis dependensi token ini pada token kepalanya.
Kutipan berikut dari Franklin D. Pidato Pelantikan Roosevelt akan menghasilkan token berikut:
CATATAN: semua tag partOfSpeech
yang berisi nilai *_UNKNOWN
telah dihapus agar lebih jelas.
"tokens": [ { "text": { "content": "The", "beginOffset": 4 }, "partOfSpeech": { "tag": "DET", }, "dependencyEdge": { "headTokenIndex": 2, "label": "DET" }, "lemma": "The" }, { "text": { "content": "only", "beginOffset": 8 }, "partOfSpeech": { "tag": "ADJ", }, "dependencyEdge": { "headTokenIndex": 2, "label": "AMOD" }, "lemma": "only" }, { "text": { "content": "thing", "beginOffset": 13 }, "partOfSpeech": { "tag": "NOUN", "number": "SINGULAR", }, "dependencyEdge": { "headTokenIndex": 7, "label": "NSUBJ" }, "lemma": "thing" }, { "text": { "content": "we", "beginOffset": 19 }, "partOfSpeech": { "tag": "PRON", "case": "NOMINATIVE", "number": "PLURAL", "person": "FIRST", }, "dependencyEdge": { "headTokenIndex": 4, "label": "NSUBJ" }, "lemma": "we" }, { "text": { "content": "have", "beginOffset": 22 }, "partOfSpeech": { "tag": "VERB", "mood": "INDICATIVE", "tense": "PRESENT", }, "dependencyEdge": { "headTokenIndex": 2, "label": "RCMOD" }, "lemma": "have" }, { "text": { "content": "to", "beginOffset": 27 }, "partOfSpeech": { "tag": "PRT", }, "dependencyEdge": { "headTokenIndex": 6, "label": "AUX" }, "lemma": "to" }, { "text": { "content": "fear", "beginOffset": 30 }, "partOfSpeech": { "tag": "VERB", }, "dependencyEdge": { "headTokenIndex": 4, "label": "XCOMP" }, "lemma": "fear" }, { "text": { "content": "is", "beginOffset": 35 }, "partOfSpeech": { "tag": "VERB", "mood": "INDICATIVE", "number": "SINGULAR", "person": "THIRD", "tense": "PRESENT", }, "dependencyEdge": { "headTokenIndex": 7, "label": "ROOT" }, "lemma": "be" }, { "text": { "content": "fear", "beginOffset": 38 }, "partOfSpeech": { "tag": "NOUN", "number": "SINGULAR", }, "dependencyEdge": { "headTokenIndex": 7, "label": "ATTR" }, "lemma": "fear" }, { "text": { "content": "itself", "beginOffset": 43 }, "partOfSpeech": { "tag": "PRON", "case": "ACCUSATIVE", "gender": "NEUTER", "number": "SINGULAR", "person": "THIRD", }, "dependencyEdge": { "headTokenIndex": 8, "label": "NN" }, "lemma": "itself" }, { "text": { "content": ".", "beginOffset": 49 }, "partOfSpeech": { "tag": "PRON", "case": "ACCUSATIVE", "gender": "NEUTER", "number": "SINGULAR", "person": "THIRD", }, "dependencyEdge": { "headTokenIndex": 8, "label": "NN" }, "lemma": "itself" }, { "text": { "content": ".", "beginOffset": 49 }, "partOfSpeech": { "tag": "PUNCT", }, "dependencyEdge": { "headTokenIndex": 7, "label": "P" }, "lemma": "." } ],
Klasifikasi Konten
Anda dapat meminta Natural Language API menganalisis dokumen dan menampilkan daftar
kategori konten yang berlaku untuk teks yang ditemukan dalam dokumen tersebut. Untuk mengklasifikasikan
konten dalam dokumen, panggil metode classifyText
.
Daftar lengkap kategori konten yang ditampilkan untuk metode classifyText
dapat ditemukan di sini.
Natural Language API memfilter kategori yang ditampilkan oleh metode
classifyText
untuk hanya menyertakan kategori yang paling relevan untuk
permintaan. Misalnya, jika /Science
dan /Science/Astronomy
berlaku untuk
dokumen, hanya kategori /Science/Astronomy
yang ditampilkan, karena
merupakan hasil yang lebih spesifik.
Untuk contoh klasifikasi konten dengan Natural Language API, lihat Mengklasifikasikan Konten.
Melakukan beberapa operasi dalam satu permintaan
Jika ingin melakukan serangkaian operasi Natural Language dalam satu panggilan metode, Anda dapat menggunakan annotateText
sebagai permintaan Natural Language API serbaguna. Permintaan JSON Anotasi Teks mirip dengan
permintaan Analisis Entity standar, tetapi juga memerlukan
sekumpulan
fitur yang diteruskan
untuk menunjukkan operasi yang akan dilakukan pada teks. Fitur ini tercantum di bawah:
extractDocumentSentiment
melakukan analisis sentimen, seperti yang dijelaskan di bagian Analisis Sentimen.extractEntities
melakukan analisis entitas, seperti yang dijelaskan di bagian Analisis Entitas.extractSyntax
menunjukkan bahwa teks yang diberikan harus diproses untuk melakukan analisis sintaksis, seperti yang dijelaskan di bagian Analisis Sintaksis.
Permintaan berikut memanggil API untuk memberikan anotasi features
dalam kalimat pendek.
{ "document":{ "type":"PLAIN_TEXT", "content":"The windy, cold weather was unbearable this winter." }, "features":{ "extractSyntax":true, "extractEntities":true, "extractDocumentSentiment":true }, "encodingType":"UTF8" }