Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konu başlığında, IWordBreaker ve IStemmer uygulamalarınızı doğrulamak ve sorunlarını gidermek için en iyi yöntemler ve öneriler sağlanır.
Bu konu aşağıdaki gibi düzenlenmiştir:
- En İyi Yöntemler
- Stemmer Tutarlılığı Testi
- Stemmer'da Geçersiz Giriş İçin Test
- Word Breaker Tutarlılığını Test Etme
- Geçersiz Giriş için Word Breaker Testi
En iyi yöntemler
- Dil kaynakları için iş parçacığı modelinin kayıt defterinde "her ikisi" olarak ayarlandığından emin olun.
- Mümkün olduğunda, dil verilerini ayrı bir dosya yerine DLL'nizdeki bir kaynağa yerleştirin. Bu, DLL'nin yüklenmesini kolaylaştırır ve daha güvenli hale getirir. Ayrıca, bir kaynağa dil verilerinin koyulması, bu dil kaynak bileşeni için performansın artmasına neden olur.
- Dil kaynak bileşenlerinin kullandığı sistem kaynaklarını en aza indirin. Örneğin, bir dil kaynak nesnesinin her örneğinin bir sözcük sözlüğüne salt okunur erişime ihtiyacı varsa, sözlüğü tüm örnekler arasında paylaşmayı göz önünde bulundurun.
- Sözcük ayırıcı uygulamanız için dilde veya yerel ayarda olmayan metinleri işlemek için nötr sözcük ayırıcıyı kullanmayı göz önünde bulundurun. Bu, metnin tüm dillerde tutarlı bir şekilde işlenmesine yardımcı olur.
- Tüm dönüş kodlarını denetleyin ve IStemmer::GenerateWordForms ve IWordBreaker::BreakTextgibi işlevlerden döndürin. Dizin oluşturma başarısız olursa, kullanıcıya hangi belgelerin dizine alındığının bildirilmesi için hatanın geçirilmesi önemlidir.
Kökleyici tutarlılığını test etme
Aşağıdaki koşullar altında tutarlılık için IStemmer uygulamasının performansını izlemenizi öneririz:
- Kök ayırıcı, IStemmer::Initiçin birden çok çağrıda tutarlı bir şekilde çalışır. Stemmer, parametreleri serbest bırakmadan önceki başlatmada olduğu gibi aynı parametrelerle yeniden başlatılır.
- Aynı test corpus ve aynı sorgunun tekrarları göz önünde bulundurulduğunda IStemmer::GenerateWordForms aynı çıktıyı üretir ve IWordFormSink nesnesinin yöntemlerine aynı çağrılar yapar.
Kök ayırıcıda hatalı giriş testi yapma
IStemmer yöntemlerinin geçersiz parametrelerle ilgili tüm hataları nasıl işlediğini izlemenizi öneririz. Ayrıca, stemmer yöntemlerinin işlenmeyen özel durumlar üretmediğinden emin olmanızı öneririz. Kök ayırıcı aşağıdaki hataları işlemelidir:
- IStemmer::Init çağrısı, pfLicenseNULLolarak ayarlanmış. Başlatma başarısız olur ve erişim ihlaline neden olmaz.
- IStemmer::GetLicenseToUse çağrısı ppwcsLicense parametresi NULLolarak ayarlanmış şekilde yapılır. IStemmer::GetLicenseToUse erişim ihlaline neden olmaz.
- IStemmer::GenerateWordForms fonksiyonunu pwcInBuf parametresi NULLolarak ayarlanmış olarak çağırın. IStemmer::GenerateWordForms başarısız olur (E_FAIL döndürür) ve erişim ihlaline neden olmaz.
- 0'a eşit cwc parametresiyle IStemmer::GenerateWordForms çağrısı yapın. IStemmer::GenerateWordForms başarıyla döndürür (S_OK döndürür) ve erişim ihlaline neden olmaz.
- IStemmer::GenerateWordForms fonksiyonunu, pwcInBuf parametresi NULL ve cwc parametresi 0 ile eşit olacak şekilde çağrı yapın. IStemmer::GenerateWordForms başarısız olur (E_FAIL döndürür) ve erişim ihlaline neden olmaz.
Word ayırıcı tutarlılığını test etme
IWordBreaker uygulamasının aşağıdaki koşullar altında tutarlı bir şekilde çalıştığından emin olmanız önerilir:
- Sözcük ayırıcı, IWordBreaker::Init yöntemine yapılan birden çok çağrıda tutarlı bir performans gösterir. Breaker sözcüğü, parametreleri serbest bırakmadan önceki başlatmada olduğu gibi aynı parametrelerle yeniden başlatılır.
- Aynı test corpus ve aynı sorgunun tekrarları göz önünde bulundurulduğunda, IWordBreaker::BreakText yöntemi aynı çıkışı oluşturur ve IWordSink ve IPhraseSink nesnelerinin yöntemlerine aynı çağrılar yapar.
Kelime ayırıcıda geçersiz giriş için test edilmesi
IWordBreaker yöntemlerinin geçersiz parametrelerle ilgili tüm hataları işlediğinden emin olmanız önerilir. Ayrıca, sözcük ayırıcı yöntemlerinin işlenmeyen özel durumlar oluşturmamasını sağlamanız önerilir. Sözcük ayırıcı aşağıdaki işlevleri gerçekleştirmeli ve aşağıdaki hataları işlemelidir:
- IWordBreaker::Init çağrısı LANGUAGE_E_DATABASE_NOT_FOUND veya S_OK döndürmelidir.
- IWordBreaker::Init çağrısı, pfLicense parametresini FALSE olarak başarıyla başlatır ve IStemmer::GetLicenseToUse fonksiyonunu çağırır, bu da bir erişim ihlaline yol açmaz.
- Sözcük ayırıcı, IWordBreaker::BreakText yönteminde awcBuffer parametresinin sonunu okumaz.
- IWordBreaker::BreakText çağrısı, pwcInBufNULLolarak ayarlandığında yapılır. IWordBreaker::BreakText başarısız olur (E_FAIL döndürür) ve erişim ihlaline neden olmaz.
- 0'a eşit olan cwc parametresiyle IWordBreaker::BreakText çağrısı yapın. IWordBreaker::BreakText başarıyla döndürür (S_OK döndürür) ve erişim ihlaline neden olmaz.
- pwcInBuf parametresi null ve cwc parametresi 0'a eşit olarak ayarlanmışIWordBreaker::BreakText yöntemine çağrı yapın. IWordBreaker::BreakText başarısız olur (E_FAIL döndürür) ve erişim ihlaline neden olmaz.
- Dizin oluşturma sırasında oluşturulan tümcecikler aynı sayıda sözcük içerir.
- tümcecikler, IWordFormSink::P utWord ve IWordFormSink::P utAltWord yöntemlerine ardışık çağrılar aracılığıyla dizin oluşturma sırasında oluşturulur. Sözcük ayırıcı, sorgu zamanında yalnızca IPhraseSink nesnesini kullanır.
İlgili konular