Herkes iyi bir .NET sözlüğü API'si biliyor mu? Anlamları ile ilgilenmiyorum, daha çok farklı yollarla sözcükleri sorgulayabilmem gerekir - x uzunluğunun geri dönüşü kelimeleri, kısmi eşleşmeleri döndür ve ...Dictionary API (lexical)
cevap
Düz metin dosyasını ASpell (http://aspell.net/) gibi bir açık kaynak kod yazıcısından alın ve bir Listeye veya istediğiniz herhangi bir yapıda yükleyin. sorgularınızın olacak nasıl dahil bağlı örneğin
,
List<string> words = System.IO.File.ReadAllText("MyWords.txt").Split(new string[]{Environment.NewLine}).ToList();
// C# 3.0 (LINQ) example:
// get all words of length 5:
from word in words where word.length==5 select word
// get partial matches on "foo"
from word in words where word.Contains("foo") select word
// C# 2.0 example:
// get all words of length 5:
words.FindAll(delegate(string s) { return s.Length == 5; });
// get partial matches on "foo"
words.FindAll(delegate(string s) { return s.Contains("foo"); });
Aramak isteyebilirsiniz Trie uygulaması. Bu kesinlikle "XYZ ile başlayan kelimeler" ile kesin eşleşmelerde yardımcı olacaktır. Tüm verilerinizin, her biri belirli bir görev için ayarlanmış birden çok veri yapısında olmasını isteyebilirsiniz - örn. Anagramlar için, biri "boyuta" vb. Doğal dil sözlükleri bu günlerde RAM ile karşılaştırıldığında nispeten küçüktür, bu yüzden gerçekten hızlı bir arama yapmak istiyorsanız, muhtemelen gidilecek yoldur.
, temelde bir semantik sözlüğü WordNet, araştırmaya değer olabilir. Konuşma parçaları, eş anlamlı sözcükler ve kelimeler arasındaki diğer ilişki türlerini içerir.
NetSpell (http://www.loresoft.com/netspell/), .NET'te yazabileceğiniz ve kullanabileceğiniz birkaç dilde sözcük listeleri bulunan bir yazım denetimi aracıdır.
Ben bu konuda Barry Fandango ile yaşıyorum, ancak LINQ olmadan yapabilirsiniz. .NET 2.0, List (T) türünde bazı güzel filtreleme yöntemlerine sahiptir. Önerim bir Bu yöntem yüklem yöntemiyle listedeki her eleman koymak ve 'gerçek' dönmek kelimelerin listesini döndürecektir
List(T).FindAll(Predicate(T)) : List(T)
olduğunu. Yani, açık kaynak sözlükten önerildiği şekilde sözcüklerinizi bir Listeye (String) yükleyin. ...
List(String) words = LoadFromDictionary();
List(String) fiveLetterWords = words.FindAll(delegate(String word)
{
return word.Length == 5;
});
Veya 'abc' ile başlayan tüm kelimeleri
...List(String) words = LoadFromDictionary();
List(String) abcWords = words.FindAll(delegate(String word)
{
return word.StartsWith('abc');
});
oh ek, C# 2.0 kodunu da yazdı ... Oooops. (Kendime not: Tamamen cevapları oku) –
- 1. EXIF Dictionary EXP Dictionary
- 2. Lexical veya Preprocessor Issue React Yerel
- 3. C# Dictionary kullanarak bir C# Dictionary işleniyor LINQ
- 4. Tensorflow Dictionary with String tensör
- 5. Dictionary <dynamic, dynamic> to Dictionary <string, string> Colllection.ToDictionary()
- 6. Hashtable ve Dictionary arasındaki fark nedir?
- 7. Serialize Dictionary <,> Json.NET'te dizi olarak
- 8. Filter Array of Dictionary ve string
- 9. Oxford Dictionary için Word dosya listesi
- 10. Bir Swift Dictionary alt sınıfı oluşturun?
- 11. ThreadSafe Dictionary ... Anahtar Değer Çiftleri Enumerable? (.net)
- 12. MVC 4 ActionLink Dictionary htmlAttributes çalışmıyor
- 13. Eşleme Dictionary</p> <p>Örnek
- 14. DataContract serializer kullanarak Dictionary <string, object> serileştirebilir miyim?
- 15. typescript: 'dictionary' türünde nokta notasyonu ile erişim özelliği
- 16. DictionaryBase ve Dictionary Arasındaki Fark <Tkey,Tvalue>
- 17. DataContractSerializer ve Dictionary <string, object> okurken başarısız oluyor
- 18. "Resource Dictionary (WPF)" adlandırma kuralı ve önerileri anlama
- 19. Linq Expressions kullanarak bir Dictionary Öğesi'ne nasıl erişirim
- 20. Dictionary için Yüksek Çalışma Zamanı Çok sayıda öğe için ekleme
- 21. ProtoBuf-net dosyasındaki bir Dictionary <string, object> serileştirmesi
- 22. api
- 23. API
- 24. Kalıtsal Web API API Kontrolörü
- 25. Sözlük parametresi web-api yöntemine nasıl aktarılır?
- 26. MySQL NDB API AccessViolationException
- 27. Authorize.Net transaction api ile ilgili işlemler api
- 28. Satırlar için API API sarıcı sınıfları kazanma
- 29. Android Kamera API için Sarıcı Kitaplığı API
- 30. Android geliştirici: api 14 vs api 15
uzunluğu 5 tüm kelimeleri bulmak için ben bu kod C# 3.0, ve ya .NET 3.5 veya gerektirir inanıyoruz. NET 2.0 LINQBridge ile. .NET 3.0, bu konuda .NET 2.0 üzerinde yararlı bir şey sağlamaz. –
Doğru, şimdi bir süredir 3.0 çalışıyordum, bu yüzden ihtiyacım olduğunda LINQ kullanışlıdır. 3.0 olmayan örneklerini içerecek şekilde düzenlenmiştir. –
Neden sadece bir kez tekrar yapabilirim? ;) – GalacticCowboy