الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مكتبة datrie الآن تدعم اللواحق suffixes

بدأه ahmed_youssef في 18 فبراير 2014 · 2 رد · 437 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هي Trie تدعم Python 2, 3 

https://github.com/kmike/datrie

 

تستخدم للحصول على البادئات وأطول بادئة prefix وأحتجت لتدعيم اللواحق suffixes من أجل مشروع خارجي 

كانت التفكير عن طريق كود كالتالي

 
def suffixes(trie, word):
return [x[len(word):] for x in trie.keys(word)]

 

 
from string import ascii_lowercase
from datrie import Trie
 
 
t = Trie(ascii_lowercase)
#pro, prof, production, producer, product, producers,  productivity
 
t[u'pro']=1
t[u'prof']=2
t[u'product']=3
t[u'production']=4
t[u'producer'] = 5
t[u'producers']= 6
t[u'productivity']=7

 

>>>  suffixes(t, u'pro')
 >>> [u'', u'ducer', u'ducers', u'duct', u'duction', u'ductivity', u'f']

 

قمت بالتعديل لتستطيع إستخدامها كالتالي

>>> trie.suffixes()
[u'pro', u'producer', u'producers', u'product', u'production', u'productivity', u'prof']
>>> trie.suffixes(u'prod')
[u'ucer', u'ucers', u'uct', u'uction', u'uctivity']

 

 
    cpdef suffixes(self, unicode prefix=u''):
        """
Returns a list of this trie's suffixes.
If ``prefix`` is not empty, returns only the suffixes of words prefixed by ``prefix``.
"""
        cdef bint success
        cdef list res = []
        cdef BaseState state = BaseState(self)
 
        if prefix is not None:
            success = state.walk(prefix)
            if not success:
                return res
 
        cdef BaseIterator iter = BaseIterator(state)
 
        while iter.next():
            res.append(iter.key())
            
        return res

 

مكتبة جيدة في كل الأحوال أعطوها تجربة

1
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#2

إضافة suffixes تعتبر تكملة للمكتبة

فإنك تستطيع إستخدام المكتبة لي إيجاد الsuffixes كمثال:

>>> t= datrie.t(trie)
>>> t.walk(u'pro')
>>> it = datrie.Iterator(t)
>>> while it.next():
...     print(it.key())
...     print(it.data))

1
ducer
5

ولكن بالإضافة التي أضفتها فإنك سهلت علينا كتابة الكود

مكتبة datrie مكتبة لها العديد من الإستخدمات فهي على العموم مكتبة لتنظيم البيانات في trie لإجراء عدة عمليات عليها

لمعلومات أكثر على المكتبة هنا

بوركت على الإضافة يا شيخ

تم تعديل هذه المشاركة بواسطة عامر الشابي في 18 فبراير 2014 في 13:21

Untitled-18.jpg

#3

تستطيع إستخدام هذه الطريقة كذلك عامة وأبسط :)

 
def suffixes(trie, word):
return [x[len(word):] for x in trie.keys(word)]
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

مواضيع مشابهة