نحن في الشركة نقوم بإنشاء خدمة تستخلص الحقائق القانونية من مراسلات العميل والعميل. نشأت هذه الخدمة عن فكرة بسيطة واحدة - قرر زبائني المنتظمون تبسيط عمل المديرين وإنشاء "مولد عقود". المهمة الأولى - لسحب تفاصيل العميل والعميل في العقد ، قررنا بسهولة.
ظهرت فكرة ثانية - للبحث عن التواريخ في المراسلات وإدراجها في الشروط المرجعية والمستندات تلقائيًا.
ومع ذلك ، نادراً ما يكتب الأشخاص التواريخ في المحادثات والمراسلات الفورية حتى تتمكن الخوارزمية من التعرف عليها بسهولة.
"نبدأ الأسبوع المقبل" ، "هذا الجمعة" - إذا كان من السهل نسبياً على المديرين أن يتعلموا كيفية كتابة التواريخ بالتنسيق الصحيح ، فلن تتمكن من تقديم مثل هذه الطلبات على العملاء.
أنا أكتب في python و python جاء على الفور إلى وحدة الإنقاذ NLP-library spaCy * - NER (التعرف على اسم الكيان) التي استردت التواريخ بسهولة من المراسلات مع العملاء الناطقين باللغة الإنجليزية. ونتيجة لذلك ، حصلنا على مجموعة من التواريخ النسبية: "خلال أسبوعين" ، "الجمعة" ، "الجمعة" ، "الظهر" ، "ظهر يوم الأحد".
ولكن كيف تترجم هذه التواريخ إلى كائنات تدركها الخدمة (كائن وقت)؟
بدأت رحلة طويلة في مجال "تحليل التواريخ القابلة للقراءة البشرية". عند مسح البيئة المحيطة ، وجدت فقط ثلاث مكتبات بيثون عملت فورًا وبدون عذاب: هذه هي timefhuman ** و dateparser *** و datefinder ***.
تظهر الصورة مقارنة بين ثلاث مكتبات:

بشكل عام ، من الواضح أن الإطار الزمني ، غير المدلل للاهتمام ، تبين أنه أكثر ملاءمة ، على الرغم من وجود عدد كبير من الإيجابيات الخاطئة ، مقارنةً بمحلل التاريخ الذي يستخدمه معظم الناس.
أعطى منطقًا مثيرًا للمطورين الذين يقومون بتحليل "الجمعة" المستقبل يوم الجمعة في حالة timefhuman ويوم الجمعة الماضي في dateparser.
بشكل عام ، تبين أن timefhuman كان على قيد الحياة وتم اختياره لمزيد من التطوير واختبار النموذج الأولي.
*
spacy.io**
github.com/alvinwan/timefhuman***
github.com/scrapinghub/dateparser****
github.com/akoumjian/datefinder