catalyst เป็นไลบรารีการประมวลผลภาษา C# Natural ที่สร้างขึ้นเพื่อความรวดเร็ว ได้รับแรงบันดาลใจจากการออกแบบของ spaCy โดยนำเสนอโมเดลที่ได้รับการฝึกอบรมล่วงหน้า การสนับสนุนแบบสำเร็จรูปสำหรับการฝึกฝนการฝังคำและเอกสาร และโมเดลการจดจำเอนทิตีที่ยืดหยุ่น
ข้อมูลและโมเดลเฉพาะภาษาทั้งหมดมีให้เป็นแพ็คเกจ NuGet คุณสามารถค้นหาแพ็คเกจทั้งหมดได้ที่นี่
รุ่นใหม่ได้รับการฝึกอบรมเกี่ยวกับ Universal Dependencies v2.7 รุ่นล่าสุด
นอกจากนี้เรายังได้เพิ่มตัวเลือกในการจัดเก็บและโหลดโมเดลโดยใช้สตรีม:
// Creates and stores the model
var isApattern = new PatternSpotter ( Language . English , 0 , tag : " is-a-pattern " , captureTag : " IsA " ) ;
isApattern . NewPattern (
" Is+Noun " ,
mp => mp . Add (
new PatternUnit ( P . Single ( ) . WithToken ( " is " ) . WithPOS ( PartOfSpeech . VERB ) ) ,
new PatternUnit ( P . Multiple ( ) . WithPOS ( PartOfSpeech . NOUN , PartOfSpeech . PROPN , PartOfSpeech . AUX , PartOfSpeech . DET , PartOfSpeech . ADJ ) )
) ) ;
using ( var f = File . OpenWrite ( " my-pattern-spotter.bin " ) )
{
await isApattern . StoreAsync ( f ) ;
}
// Load the model back from disk
var isApattern2 = new PatternSpotter ( Language . English , 0 , tag : " is-a-pattern " , captureTag : " IsA " ) ;
using ( var f = File . OpenRead ( " my-pattern-spotter.bin " ) )
{
await isApattern2 . LoadAsync ( f ) ;
}
การใช้ catalyst ทำได้ง่ายเพียงแค่ติดตั้งแพ็คเกจ NuGet และตั้งค่าพื้นที่จัดเก็บข้อมูลเพื่อใช้พื้นที่เก็บข้อมูลออนไลน์ของเรา ด้วยวิธีนี้ โมเดลจะโหลดแบบ Lazy Load จากดิสก์หรือดาวน์โหลดจากพื้นที่เก็บข้อมูลออนไลน์ของเรา ตรวจสอบโครงการตัวอย่างบางส่วน เพื่อดูตัวอย่างเพิ่มเติมเกี่ยวกับวิธีใช้ catalyst
catalyst . Models . English . Register ( ) ; //You need to pre-register each language (and install the respective NuGet Packages)
Storage . Current = new DiskStorage ( " catalyst -models " ) ;
var nlp = await Pipeline . ForAsync ( Language . English ) ;
var doc = new Document ( " The quick brown fox jumps over the lazy dog " , Language . English ) ;
nlp . ProcessSingle ( doc ) ;
Console . WriteLine ( doc . ToJson ( ) ) ;
คุณยังสามารถใช้ประโยชน์จากการประเมินแบบ C# และการสนับสนุนแบบมัลติเธรดเพื่อประมวลผลเอกสารจำนวนมากแบบขนาน:
var docs = GetDocuments ( ) ;
var parsed = nlp . Process ( docs ) ;
DoSomething ( parsed ) ;
IEnumerable < IDocument > GetDocuments ( )
{
//Generates a few documents, to demonstrate multi-threading & lazy evaluation
for ( int i = 0 ; i < 1000 ; i ++ )
{
yield return new Document ( " The quick brown fox jumps over the lazy dog " , Language . English ) ;
}
}
void DoSomething ( IEnumerable < IDocument > docs )
{
foreach ( var doc in docs )
{
Console . WriteLine ( doc . ToJson ( ) ) ;
}
}
การฝึกอบรมโมเดลการฝัง FastText word2vec ใหม่นั้นง่ายดายดังนี้:
var nlp = await Pipeline . ForAsync ( Language . English ) ;
var ft = new FastText ( Language . English , 0 , " wiki-word2vec " ) ;
ft . Data . Type = FastText . ModelType . CBow ;
ft . Data . Loss = FastText . LossType . NegativeSampling ;
ft . Train ( nlp . Process ( GetDocs ( ) ) ) ;
ft . StoreAsync ( ) ;
สำหรับการค้นหาแบบฝังอย่างรวดเร็ว เราได้เปิดตัวอัลกอริธึม "Hierarchical Navigable Small World" (HNSW) เวอร์ชัน C# บน NuGet โดยอิงจากทางแยก HNSW.Net ของ Microsoft ของเรา นอกจากนี้เรายังได้เปิดตัวอัลกอริธึม "Uniform Manifold Approximation and Projection" (UMP) เวอร์ชัน C# สำหรับการลดขนาดบน GitHub และบน NuGet
เอกสารประกอบ | |
---|---|
มีส่วนช่วย | วิธีมีส่วนร่วมในรหัสฐาน catalyst |
ตัวอย่าง | โครงการตัวอย่างที่แสดงให้เห็นถึงความสามารถของ catalyst |
เข้าร่วมช่อง Gitter ของเรา |