
kompromi

Pemrosesan bahasa alami yang sederhana
npm install compromise
oleh Spencer Kelly dan banyak kontributor

Prancis • Jerman • Italia • Spanyol

Apakah Anda tidak menganggapnya aneh,


Kompromi
mencoba yang terbaik untuk mengubah teks menjadi data.

Itu membuat keputusan yang terbatas dan masuk akal.
Ini tidak sepintar yang Anda pikirkan. 

import nlp from 'compromise'
let doc = nlp ( 'she sells seashells by the seashore.' )
doc . verbs ( ) . toPastTense ( )
doc . text ( )
// 'she sold seashells by the seashore.'

Jangan mewah, sama sekali:
if ( doc . has ( 'simon says #Verb' ) ) {
return true
} 
ambil bagian teks:
let doc = nlp ( entireNovel )
doc . match ( 'the #Adjective of times' ) . text ( )
// "the blurst of times?"
Cocokkan dokumen

Dan dapatkan data:
import plg from 'compromise-speech'
nlp . extend ( plg )
let doc = nlp ( 'Milwaukee has certainly had its share of visitors..' )
doc . compute ( 'syllables' )
doc . places ( ) . json ( )
/*
[{
"text": "Milwaukee",
"terms": [{
"normal": "milwaukee",
"syllables": ["mil", "wau", "kee"]
}]
}]
*/ JSON DOCS

Hindari masalah parser rapuh:
let doc = nlp ( "we're not gonna take it.." )
doc . has ( 'gonna' ) // true
doc . has ( 'going to' ) // true (implicit)
// transform
doc . contractions ( ) . expand ( )
doc . text ( )
// 'we are not going to take it..'
Dokumen kontraksi

dan cambuk di sekitar seperti data:
let doc = nlp ( 'ninety five thousand and fifty two' )
doc . numbers ( ) . add ( 20 )
doc . text ( )
// 'ninety five thousand and seventy two'
nomor dokumen

-Karulah sebenarnya-
let doc = nlp ( 'the purple dinosaur' )
doc . nouns ( ) . toPlural ( )
doc . text ( )
// 'the purple dinosaurs'
kata benda dokumen

Gunakan di sisi klien:
< script src =" https://unpkg.com/compromise " > </ script >
< script >
var doc = nlp ( 'two bottles of beer' )
doc . numbers ( ) . minus ( 1 )
document . body . innerHTML = doc . text ( )
// 'one bottle of beer'
</ script >
atau juga:
import nlp from 'compromise'
var doc = nlp ( 'London is calling' )
doc . verbs ( ) . toNegative ( )
// 'London is not calling'


Kompromi adalah ~ 250kb (Minified):
Cukup cepat. Itu dapat berjalan pada keypress:
Ini berfungsi terutama dengan mengkonjugasikan semua bentuk daftar kata dasar.
Leksikon terakhir adalah ~ 14.000 kata:
Anda dapat membaca lebih lanjut tentang cara kerjanya, di sini. Aneh.

Oke -
compromise/one
tokenizer kata, kalimat, dan tanda baca.

import nlp from 'compromise/one'
let doc = nlp ( "Wayne's World, party time" )
let data = doc . json ( )
/* [{
normal:"wayne's world party time",
terms:[{ text: "Wayne's", normal: "wayne" },
...
]
}]
*/ Tokenizer Docs
kompromi/satu membagi teks Anda, membungkusnya dengan API yang praktis,
dan tidak melakukan apa pun -

/Satu cepat - sebagian besar kalimat mengambil 10 milidetik.
Itu dapat melakukan ~ 1MB teks per halaman kedua - atau 10 wikipedia.
Infinite Jest membutuhkan waktu 3s.
Anda juga dapat memparalelkan, atau mengalirkan teks dengan kecepatan kompromi.

compromise/two
Tagger part-of-speech , dan interpreter tata bahasa.

import nlp from 'compromise/two'
let doc = nlp ( "Wayne's World, party time" )
let str = doc . match ( '#Possessive #Noun' ) . text ( )
// "Wayne's World"
Tagger Docs

Kompromi/dua secara otomatis menghitung tata bahasa yang sangat dasar dari setiap kata.
Ini lebih berguna daripada yang kadang -kadang disadari orang.
Tata bahasa ringan membantu Anda menulis templat yang lebih bersih, dan lebih dekat dengan informasi.

Kompromi memiliki 83 tag , disusun dalam grafik yang tampan.
#FirstName → #Person → #Propernoun → #noun
Anda dapat melihat tata bahasa dari setiap kata dengan menjalankan doc.debug()
Anda dapat melihat alasan untuk setiap tag dengan nlp.verbose('tagger') .
Jika Anda lebih suka penn tag , Anda dapat memperolehnya dengan:
let doc = nlp ( 'welcome thrillho' )
doc . compute ( 'penn' )
doc . json ( )

compromise/three
Phrase dan perkakas kalimat.

import nlp from 'compromise/three'
let doc = nlp ( "Wayne's World, party time" )
let str = doc . people ( ) . normalize ( ) . text ( )
// "wayne"
Dokumen Seleksi
Kompromi/tiga adalah satu set alat untuk memperbesar dan beroperasi pada bagian teks.
.numbers() mengambil semua angka dalam dokumen, misalnya - dan memperluasnya dengan metode baru, seperti .subtract() .
Ketika Anda memiliki frasa, atau sekelompok kata, Anda dapat melihat metadata tambahan tentang hal itu dengan .json()
let doc = nlp ( 'four out of five dentists' )
console . log ( doc . fractions ( ) . json ( ) )
/*[{
text: 'four out of five',
terms: [ [Object], [Object], [Object], [Object] ],
fraction: { numerator: 4, denominator: 5, decimal: 0.8 }
}
]*/ let doc = nlp ( '$4.09CAD' )
doc . money ( ) . json ( )
/*[{
text: '$4.09CAD',
terms: [ [Object] ],
number: { prefix: '$', num: 4.09, suffix: 'cad'}
}
]*/ 
API
Kompromi/satu
Keluaran
- .text () - kembalikan dokumen sebagai teks
- .json () - mengembalikan dokumen sebagai data
- .debug () - Cukup printasi dokumen yang ditafsirkan
- .out () - output namanya atau kustom
- .html ({}) - output tag html khusus untuk kecocokan
- .wrap ({}) - menghasilkan output khusus untuk pencocokan dokumen
Utils
- . Temukan [Getter] - Apakah dokumen ini kosong?
- .docs [getter] Dapatkan objek istilah sebagai json
- .length [getter] - hitung # karakter dalam dokumen (panjang string)
- .isview [Getter] - Identifikasi objek kompromi
- .compute () - Jalankan analisis bernama pada dokumen
- .clone () - Menyalin DEEP Dokumen, sehingga tidak ada referensi yang tersisa
- .termlist () - mengembalikan daftar datar semua objek istilah yang cocok
- .cache ({}) - bekukan keadaan dokumen saat ini, untuk tujuan kecepatan
- .Ununcache () - un -freezes keadaan dokumen saat ini, sehingga dapat diubah
- .freeze ({}) - mencegah tag apa pun yang dihapus, dalam istilah ini
- .unfreeze ({}) - Izinkan tag berubah lagi, sebagai default
Aksesor
- .All () - kembalikan seluruh dokumen asli ('zoom out')
- .terms () - Hasil split -up oleh setiap istilah individu
- .first (n) - Gunakan hanya hasil pertama
- .last (n) - Gunakan hanya hasil terakhir
- .slice (n, n) - ambil subset hasil
- .eq (n) - Gunakan hanya hasil ke -n
- .firstterms () - Dapatkan kata pertama di setiap pertandingan
- .lastterms () - Dapatkan kata akhir di setiap pertandingan
- .fullsentences () - Dapatkan seluruh kalimat untuk setiap pertandingan
- .groups () - ambil semua kelompok penangkapan bernama dari pertandingan
- .wordcount () - Hitung # istilah dalam dokumen
- .confidence () - skor rata -rata untuk interpretasi tag POS
Cocok
(Metode Pencocokan Gunakan pertandingan-sintaks.)
- .match ('') - kembalikan dokumen baru, dengan yang ini sebagai orang tua
- .not ('') - kembalikan semua hasil kecuali untuk ini
- .matchone ('') - kembalikan hanya pertandingan pertama
- .Jika ('') - Kembalikan setiap frasa saat ini, hanya jika berisi kecocokan ini ('hanya')
- .ifno ('') - filter -out frasa saat ini yang memiliki kecocokan ini ('noTif')
- .has ('') - kembalikan boolean jika pertandingan ini ada
- . Before ('') - kembalikan semua istilah sebelum kecocokan, dalam setiap frasa
- .Aphter ('') - Kembalikan semua istilah setelah kecocokan, di setiap frasa
- .union () - Return gabungan kecocokan tanpa duplikat
- .intersection () - Return Only Duplicate Matches
- .complement () - Dapatkan semuanya tidak dalam pertandingan lain
- .settle () - Hapus tumpang tindih dari kecocokan
- .growright ('') - tambahkan persyaratan yang cocok segera setelah setiap pertandingan
- .growleft ('') - tambahkan persyaratan yang cocok segera sebelum setiap pertandingan
- .grow ('') - tambahkan istilah yang cocok sebelum atau setelah setiap pertandingan
- .sweep (net) - Terapkan serangkaian objek kecocokan ke dokumen
- .spliton ('') - kembalikan dokumen dengan tiga bagian untuk setiap pertandingan ('spliton')
- .splitbefore ('') - Partisi frasa sebelum setiap segmen yang cocok
- .splitafter ('') - Partisi frasa setelah setiap segmen yang cocok
- .join () - Gabungkan istilah tetangga di setiap pertandingan
- .joinif (leftmatch, hightmatch) - gabungkan syarat tetangga dalam kondisi yang diberikan
- .lookup ([]) - Temukan cepat untuk serangkaian pencocokan string
- .Autofill () - Buat asumsi tipe -ahead pada dokumen
Menandai
- .tag ('') - berikan semua istilah tag yang diberikan
- .tagsafe ('') - Hanya terapkan tag untuk istilah jika konsisten dengan tag saat ini
- .Untag ('') - Hapus istilah ini dari persyaratan yang diberikan
- .canbe ('') - kembalikan hanya istilah yang bisa menjadi tag ini
Kasus
- .tolowercase () - Ubah setiap huruf dari setiap istilah ke lower -cse
- .tuppercase () - Putar setiap huruf dari setiap istilah ke huruf besar
- .totitlecase () - huruf besar huruf pertama dari setiap istilah
- .tocamelcase () - Lepaskan spasi putih dan judul setiap istilah
Whitespace
- .pre ('') - tambahkan tanda baca atau whitespace ini sebelum setiap pertandingan
- .post ('') - Tambahkan tanda baca atau whitespace ini setelah setiap pertandingan
- .trim () - Hapus Mulai dan Akhiri Whitespace
- .hyphenate () - Hubungkan kata -kata dengan tanda hubung, dan hapus whitespace
- .dehyphenate () - Hapus tanda hubung antar kata, dan atur whitespace
- .toquotations () - Tambahkan tanda kutip di sekitar pertandingan ini
- .toparentheses () - tambahkan kurung di sekitar pertandingan ini
Loop
- .map (fn) - Jalankan setiap frasa melalui fungsi, dan buat dokumen baru
- .foreach (fn) - Jalankan fungsi pada setiap frasa, sebagai dokumen individual
- .filter (fn) - kembalikan hanya frasa yang mengembalikan true
- .find (fn) - kembalikan dokumen dengan hanya frasa pertama yang cocok
- .some (fn) - kembalikan benar atau salah jika ada satu frasa yang cocok
- .random (fn) - sampel subset dari hasil
Menyisipkan
- .replace (cocok, ganti) - Cari dan ganti cocok dengan konten baru
- .replacewith (ganti) - Teks baru penggantian
- .remove () - sepenuhnya hapus istilah -istilah ini dari dokumen
- .insertbefore (str) - Tambahkan istilah baru ini ke depan setiap pertandingan (prepend)
- .insertafter (str) - Tambahkan istilah baru ini ke akhir setiap pertandingan (tambahkan)
- .concat () - Tambahkan hal -hal baru ini ke akhir
- .swap (Fromlemma, Tolemma) - Smart Replace of Root -words, menggunakan konjugasi yang tepat
Mengubah
- .sort ('Metode') - ARTRANGE -ulang urutan pertandingan (di tempat)
- .reverse () - membalikkan urutan kecocokan, tetapi bukan kata -katanya
- .normalize ({}) - membersihkan teks dengan berbagai cara
- .unique () - Hapus semua kecocokan duplikat
Lib
(Metode ini berada di objek nlp utama)
nlp.tokenize (str) - Teks parse tanpa menjalankan pos -tagging
nlp.lazy (str, match) - Pindai melalui teks dengan analisis minimal
nlp.plugin ({}) - Campurkan dalam kompromi -plugin
nlp.parseMatch (str) - pra -parse pernyataan pertandingan apa pun ke json
nlp.world () - ambil atau ubah internal perpustakaan
nlp.model () - ambil semua data linguistik saat ini
nlp.methods () - ambil atau ubah metode internal
nlp.hooks () - Lihat metode komputasi mana yang dijalankan secara otomatis
nlp.verbose (mode) - Catat pengambilan keputusan kami untuk debugging
NLP.Version - Versi SEMVER saat ini dari perpustakaan
nlp.addwords (obj, isfrozen?) - tambahkan kata baru ke leksikon
nlp.addtags (obj) - tambahkan tag baru ke tagset
NLP.TypeAhead (ARR) - Tambahkan kata ke kamus pengisian otomatis
nlp.buildtrie (ARR) - Kompilasi daftar kata menjadi formulir pencarian cepat
nlp.buildnet (ARR) - Kompilasi daftar kecocokan menjadi formulir pencocokan cepat

Kompromi/dua:
Kontraksi
- .Contractions () - Hal -hal seperti "tidak"
- .Contractions (). Expand () - Hal -hal seperti "tidak"
- .Contract () - Hal -hal seperti "tidak"

Kompromi/Tiga:
Kata benda
- .nouns () - mengembalikan istilah selanjutnya yang ditandai sebagai kata benda
- .nouns (). json () - output kelebihan beban dengan kata benda metadata
- .nouns (). Parse () - Dapatkan Tokenized Noun -Phrase
- .nouns (). Isplural () - Return Only Plural Nouns
- .nouns (). Issingular () - Return Only Singular Nouns
- .nouns (). Toplural () -
'football captain' → 'football captains' - .nouns (). Tosulular () -
'turnovers' → 'turnover' - .nouns (). Kata sifat () - Dapatkan kata sifat yang menggambarkan kata benda ini
Kata kerja
- .Verbs () - Kembalikan istilah selanjutnya yang ditandai sebagai kata kerja
- .Verbs (). JSON () - Output yang kelebihan beban dengan kata kerja metadata
- .Verbs (). Parse () - Dapatkan frasa kata kerja tokenized
- .Verbs (). Subjek () - Apa yang melakukan tindakan kata kerja
- .Verbs (). Adverbs () - Kembalikan kata keterangan yang menggambarkan kata kerja ini.
- .Verbs (). Issingular () - Kembalikan kata kerja tunggal seperti 'Spencer Walks'
- .Verbs (). Isplural () - Kembalikan kata kerja jamak seperti 'We Walk'
- .Verbs (). isimperative () - hanya kata kerja instruksi seperti 'Eat It!'
- .Verbs (). Topasttense () -
'will go' → 'went' - .Verbs (). TopResenttense () -
'walked' → 'walks' - .Verbs (). Tofuturetense () -
'walked' → 'will walk' - .Verbs (). Toinfinitive () -
'walks' → 'walk' - .Verbs (). Togerund () -
'walks' → 'walking' - .Verbs (). TopastParticiple () -
'drive' → 'had driven' - .Verbs (). Konjugat () - Kembalikan semua konjugasi kata kerja ini
- .Verbs (). isNegative () - Kembali kata kerja dengan 'tidak', 'tidak pernah' atau 'tidak'
- .Verbs (). isPositive () - hanya kata kerja tanpa 'tidak', 'tidak pernah' atau 'tidak'
- .Verbs (). Tonegative () -
'went' → 'did not go' - .Verbs (). Topositive () -
"didn't study" → 'studied'
Angka
- .numbers () - ambil semua nilai tertulis dan numerik
- .numbers (). Parse () - Dapatkan frasa nomor tokenized
- .numbers (). get () - Dapatkan nomor javascript sederhana
- .numbers (). json () - output kelebihan beban dengan nomor metadata
- .numbers (). Tonumber () - Konversi 'lima' menjadi
5 - .numbers (). Tolocalestring () - Tambahkan koma, atau pemformatan yang lebih bagus untuk angka
- .numbers (). Totext () - Konversi '5' menjadi
five - .numbers (). Toordinal () - Konversi 'lima' menjadi
fifth atau 5th - .Numbers (). Tocardinal () - Konversi 'kelima' menjadi
five atau 5 - .Numbers (). Isordinal () - Return Once Numbers
- .numbers (). isCardinal () - hanya mengembalikan angka kardinal
- .numbers (). Isequal (n) - Return Numbers dengan nilai ini
- .Numbers (). GreaterThan (Min) - Angka pengembalian lebih besar dari n
- .number (). Lessthan (maks) - Angka pengembalian lebih kecil dari n
- .Numbers (). Antara (Min, Max) - Angka pengembalian antara Min dan Max
- .Numbers (). IsUnit (Unit) - Return Only Numbers di unit yang diberikan, seperti 'km'
- .numbers (). Set (n) - Setel nomor ke n
- .numbers (). Tambah (n) - Tingkatkan angka oleh n
- .number (). Kurangi (n) - Kurangi angka dengan n
- .numbers (). Increment () - Tingkatkan angka dengan 1
- .Numbers (). Decrement () - Penurunan angka dengan 1
- .money () - Hal -hal seperti
'$2.50'- .money (). get () - ambil jumlah uang yang diuraikan
- .money (). json () - info mata uang + angka
- .money (). Currency () - Mata uang mana uang itu
- .fractions () - seperti '2/3rds' atau 'satu dari lima'
- .fractions (). Parse () - Dapatkan fraksi tokenized
- .fractions (). get () - pembilang sederhana, data denominator
- .fractions (). json () - metode json kelebihan dengan data fraksi
- .fractions (). Todecimal () - '2/3' -> '0.66'
- .fractions (). Normalize () - 'empat dari 10' -> '4/10'
- .fractions (). Totext () - '4/10' -> 'Four Tephs'
- .fractions (). Topercentage () - '4/10' -> '40%'
- .sentages () - seperti '2.5%'
- .sentages (). get () - kembalikan persentase angka / 100
- .percentages (). json () - json kelebihan dengan informasi persentase
- .percentages (). tofraction () - '80%' ->' 8/10 '
Kalimat
- .sentences () - kembalikan kelas kalimat dengan metode tambahan
- .sentences (). json () - output kelebihan beban dengan metadata kalimat
- .sentences (). Topasttense () -
he walks -> he walked - .sentences (). TopResentTense () -
he walked -> he walks - .sentences (). tofuturetense ()
he walks -> he will walk - .sentences (). Toinfinitive () -kata kerja root -form
he walks -> he walk - .sentences (). Tonegative () - -
he walks -> he didn't walk - .sentences (). isquestion () - kembalikan pertanyaan dengan a
? - .sentences (). isExclamation () - Kalimat kembali dengan A
! - .sentences (). isStatement () - Kalimat kembali tanpa
? atau !
Kata sifat
- .Adjectives () - Hal -hal seperti
'quick'- .Adjectives (). json () - Dapatkan kata sifat metadata
- .Adjectives (). Konjugat () - mengembalikan semua infleksi dari kata sifat ini
- .Adjectives (). Adverbia () - Dapatkan kata keterangan yang menggambarkan kata sifat ini
- .Adjectives (). ToComparative () - 'Quick' -> 'lebih cepat'
- .Adjectives (). Tosuperlative () - 'Quick' -> 'tercepat'
- .Adjectives (). ToAdVerb () - 'Quick' -> 'cepat'
- .Adjectives (). tonoun () - 'cepat' -> 'cepat'
Pilihan Misc
- .clauses () -Kalimat terpisah menjadi frasa multi-jangka
- .Chunks () -Kalimat Split-Up Noun-Phrases dan Verb-Frase
- .hyphenated () - semua istilah yang terhubung dengan tanda hubung atau tanda hubung seperti
'wash-out' - .phonenumbers () - hal -hal seperti
'(939) 555-0113' - .hashtags () - hal -hal seperti
'#nlp' - .emails () - Hal -hal seperti
'[email protected]' - .emoticons () - hal -hal seperti
:) - .emojis () - Hal -hal seperti
? - .atmentions () - hal -hal seperti
'@nlp_compromise' - .urls () - hal -hal seperti
'compromise.cool' - .pronouns () - hal -hal seperti
'he' - .konjunctions () - hal -hal seperti
'but' - .Preposisi () - hal -hal seperti
'of' - .abbreviations () - Hal -hal seperti
'Mrs.' - .people () - nama seperti 'John F. Kennedy'
- .people (). json () - Dapatkan metadata orang -nama
- .people (). Parse () - Dapatkan interpretasi orang -nama orang
- .places () - seperti 'Paris, Prancis'
- .Organizations () - Like 'Google, Inc'
- .topics () -
people() + places() + organizations() - .adverbs () - hal -hal seperti
'quickly'- .adverbs (). json () - Dapatkan adverb metadata
- .Acronyms () - Hal -hal seperti
'FBI'- .Acronyms (). Strip () - Lepaskan periode dari akronim
- .acronyms (). addperioDs () - tambahkan periode ke akronim
- .parentheses () - kembalikan apa pun di dalam (tanda kurung)
- .parentheses (). strip () - lepaskan tanda kurung
- .Possives () - Hal -hal seperti
"Spencer's"- .Possessives (). Strip () - "Spencer's" -> "Spencer"
- .puotations () - mengembalikan istilah apa pun di dalam tanda kutip berpasangan
- .quotations (). strip () - Hapus tanda kutip
- .slashes () - kembalikan istilah apa pun yang dikelompokkan dengan tebasan
- .slashes (). split () - ubah 'cinta/benci' menjadi 'cinta benci'


.memperpanjang():
Perpustakaan ini dilengkapi dengan garis dasar yang sangat masuk akal untuk tata bahasa Inggris.
Anda bebas berubah, atau meletakkan limbah ke pengaturan apa pun - yang sebenarnya merupakan bagian yang menyenangkan.
Bagian termudah adalah hanya untuk menyarankan tag untuk kata -kata yang diberikan:
let myWords = {
kermit : 'FirstName' ,
fozzie : 'FirstName' ,
}
let doc = nlp ( muppetText , myWords ) atau membuat perubahan yang lebih berat dengan kompromi-plugin.
import nlp from 'compromise'
nlp . extend ( {
// add new tags
tags : {
Character : {
isA : 'Person' ,
notA : 'Adjective' ,
} ,
} ,
// add or change words in the lexicon
words : {
kermit : 'Character' ,
gonzo : 'Character' ,
} ,
// change inflections
irregulars : {
get : {
pastTense : 'gotten' ,
gerund : 'gettin' ,
} ,
} ,
// add new methods to compromise
api : View => {
View . prototype . kermitVoice = function ( ) {
this . sentences ( ) . prepend ( 'well,' )
this . match ( 'i [(am|was)]' ) . prepend ( 'um,' )
return this
}
} ,
} ) .plugin () docs
Docs:
Pendahuluan Lembut:
- #1) Input → Output
- #2) cocok & transformasi
- #3) Membuat obrolan-bot
Dokumentasi:
| Konsep | API | Plugin |
|---|
| Ketepatan | Aksesor | Kata sifat |
| Caching | Metode konstruktor | Tanggal |
| Kasus | Kontraksi | Ekspor |
| Ukuran file | Menyisipkan | Hash |
| Internal | Json | Html |
| Pembenaran | Offset Karakter | Keypress |
| Kamus | Loop | Ngrams |
| Syntax pertandingan | Cocok | Angka |
| Pertunjukan | Kata benda | Paragraf |
| Plugin | Keluaran | Pindai |
| Proyek | Pilihan | Kalimat |
| Tagger | Penyortiran | Suku kata |
| Tag | Membelah | Mengucapkan |
| Tokenisasi | Teks | Ketat |
| Named-Entities | Utils | Penn-tag |
| Whitespace | Kata kerja | Typeead |
| Data Dunia | Normalisasi | Menyapu |
| Pencocokan fuzzy | Naskah | Mutasi |
| Bentuk akar | | |
Pembicaraan:
- Bahasa sebagai Antarmuka - oleh Spencer Kelly
- Coding Chat Bots - Oleh Kahwee Teng
- Tentang pengetikan dan data - oleh Spencer Kelly
Artikel:
- Percakapan Sosial Geocoding dengan NLP dan JavaScript - oleh Microsoft
- Microservice Recipe - oleh Eventn
- Kalimat permainan petualangan yang dikurangi dengan kompromi
- Membangun game berbasis teks - oleh Matt Eland
- Bersenang -senang dengan Javascript di BigQuery - Oleh Felipe Hoffa
- Pemrosesan bahasa alami ... di browser? - Oleh Charles Landau
Beberapa aplikasi yang menyenangkan:
- Tes Bechdel Otomatis - oleh The Guardian
- Kerangka kerja pembuatan cerita - oleh Jose Phrocca
- Tumbler Blog of Lists - Daftar Horse -Books -Like - Oleh Michael Paulukonis
- Pengeditan video dari transkripsi - dengan teori baru
- Ekstensi Browser Pemeriksaan Fakta - Oleh Alexander Kidd
- Siri Shortcut - Oleh Michael Byrns
- Amazon Skill - oleh Tajddin Maghni
- Tasking Slack -Bot - Oleh Kevin Suh [lihat lebih lanjut]
Perbandingan
- Kompromi dan spacy
- Kompromi dan NLTK
Plugin:
Ini adalah beberapa ekstensi yang bermanfaat:
Tanggal
npm install compromise-dates
- .Dates () - Temukan tanggal seperti
June 8th atau 03/03/18- .dates (). get () - hasil start/end JSON yang sederhana
- .dates (). json () - output kelebihan beban dengan metadata tanggal
- .dates (). Format ('') - Konversi tanggal menjadi format tertentu
- .dates (). Toshortform () - Konversi 'Rabu' menjadi 'Wed', dll
- .dates (). Tollongform () - Convert 'Feb' menjadi 'Februari', dll
- .durations () -
2 weeks atau 5mins- .durations (). get () - kembalikan JSON sederhana untuk durasi
- .durations (). json () - kelebihan output dengan durasi metadata
- .times () -
4:30pm atau half past five- .times (). get () - return Simple JSON untuk kali
- .times (). json () - output kelebihan beban dengan metadata waktu
Statistik
npm install compromise-stats
.tfidf ({}) - peringkat kata berdasarkan frekuensi dan keunikan
.ngrams ({}) -Sebutkan semua sub-frase yang berulang, dengan kata-kata
.unigrams () - n -gram dengan satu kata
.bigrams () - n -gram dengan dua kata
.trigrams () - n -gram dengan tiga kata
.startgrams () - n -gram termasuk istilah pertama frasa
.endgrams () - n -gram termasuk istilah terakhir dari sebuah frasa
.Egtregrams () - N -gram termasuk istilah pertama atau terakhir dari sebuah frasa
Pidato
npm install compromise-syllables
- .syllables () - Pisahkan setiap istilah dengan pengucapan khasnya
- .sounds like () - menghasilkan perkiraan pengucapan
Wikipedia
npm install compromise-wikipedia
- .wikipedia () - Rekonsiliasi Artikel Terkompresi
Naskah
Kami berkomitmen untuk dukungan TypeScript/Deno, baik di utama maupun di plugin resmi:
import nlp from 'compromise'
import stats from 'compromise-stats'
const nlpEx = nlp . extend ( stats )
nlpEx ( 'This is type safe!' ) . ngrams ( { min : 1 } ) Dokumen TypeScript
Keterbatasan:
Slash-dukungan: Kami saat ini membagi tebasan sebagai kata-kata yang berbeda, seperti yang kami lakukan untuk tanda hubung. Jadi hal -hal seperti ini tidak berhasil: nlp('the koala eats/shoots/leaves').has('koala leaves') //false
Pertandingan antar-kalimat: Secara default, kalimat adalah abstraksi tingkat atas. Pertandingan antar-kalimat, atau multi-kalimat tidak didukung tanpa plugin: nlp("that's it. Back to Winnipeg!").has('it back')//false
Sintaks pertandingan bersarang: Bahaya keindahan Regex adalah Anda dapat berulang -ulang. Sintaks pertandingan kami jauh lebih lemah. Hal -hal seperti ini belum (belum) mungkin: doc.match('(modern (major|minor))? general') kecocokan kompleks harus dicapai dengan pernyataan .Match () berturut -turut.
Parsing Ketergantungan: Transformasi kalimat yang tepat membutuhkan pemahaman pohon sintaks suatu kalimat, yang saat ini tidak kita lakukan. Kita harus! Bantuan yang diinginkan dengan ini.
FAQ
☂️ bukan javascript juga ...
Ya itu!
Itu tidak dibangun untuk bersaing dengan NLTK, dan mungkin tidak sesuai dengan setiap proyek.
Pemrosesan string juga sinkron, dan memparalelkan proses node aneh.
Lihat di sini untuk informasi tentang kecepatan & kinerja, dan di sini untuk motivasi proyek
? Bisakah itu berjalan di arduino-watch saya?
Hanya jika tahan air!
Baca awal cepat untuk menjalankan kompromi pada pekerja, aplikasi seluler, dan segala macam lingkungan yang lucu.
? Kompromi dalam bahasa lain?
Kami memiliki garpu kerja dalam proses untuk Jerman, Prancis, Spanyol, dan Italia dalam filosofi yang sama.
dan butuh bantuan.
Bangunan parsial?
Kami memang menawarkan build hanya tokenize, yang membuat post-tagger ditarik.
Tetapi sebaliknya, kompromi tidak mudah dikejutkan.
Metode penandaan kompetitif, dan serakah, jadi tidak disarankan untuk menarik barang.
Perhatikan bahwa tanpa tag penuh, kontraksi-parser tidak akan bekerja dengan sempurna. ( (Spencer's Cool) vs (rumah Spencer) )
Disarankan untuk menjalankan perpustakaan sepenuhnya.

Lihat juga:
En-POS- Pos-Tagger JavaScript yang sangat pintar oleh Alex Corvi
NaturalNode - NLP statistik yang lebih bagus di JavaScript
Winkjs -Pos-Tagger, Tokenizer, Pembelajaran Mesin di JavaScript
Dariusk/Pos -Js - Fasttag Fork di JavaScript
Compendium -Js - POS dan analisis sentimen di JavaScript
Linguistik Nodebox - Konjugasi, Infleksi dalam JavaScript
Retext - Utilitas teks yang sangat mengesankan di JavaScript
Superscript - Mesin percakapan di JS
jspos -javascript build dari brill-tagger yang teruji waktu
Spacy - Tagger multibahasa yang cepat di C/Python
Prosa - Tagger cepat di Go by Joseph Kato
TextBlob - Python Tagger

Mit