اذهب الي المحتوي
أوفيسنا

التعرف على الاسماء في نص


إذهب إلى أفضل إجابة Solved by Moosak,

الردود الموصى بها

كيف يمكن استخراج الاسماء  من نص في جدول  بناء على الاسماء الموجودة في جدول اخراستخراج الاسماء  من نص في جدول  بناء على الاسماء الموجودة في جدول اخر

مثلا

 عندي جدول فيه نصوص شكاوى مثل ( قام    محمد صالح علي اليمنى بسرقة أموال  صالح خالد صالح السامي ) فكيف يمكن التعرف على الاسماء في النص المحدد و تعبئته في جدول آخر تلقائيا 

ولو بأستخدام جدول أسماء فردية ( خالد - محمد - على، ) كمفهرس للتعرف على الأسماء بواسطته وتركيبها كأسماء رباعية أو ثلاثية او ثنائية حسب ما وردت في  النص 

واذا توفر اكثر من اسم كيف يتم تعبئة الاول لمطابقة الاسم الثاني  

 

رابط هذا التعليق
شارك

  • أفضل إجابة

وهذه تجربتي مع أخي المهندس قاسم @Eng.Qassim ومستندا على ملفه 🙂 

image.png.e20c79fdc3caaae9a29e7706637e31f4.png

طبعا سوف نحتاج لجدول خاص بقائمة الأسماء فيه عمودين 1 - الاسم أو القبيلة(اسم العائلة)  و 2- النوع وهو حقل رقمي أن كان اسم فالنوع 1 وإن كانت قبيلة فالنوع 2 نحتاجه للفصل بين الأسماء .

image.png.0a010a186daf7c2b38f772641bfdb408.png

بعدها قمت بتطوير دالة تقوم بفحص كلمات الفقرة كلمة كلمة وتقارنها بالأسماء الموجودة في الجدول ، فإن عثرت على الاسم في الجدول تختزله من الفقرة وتضيفه إلى المصفوفة ثم تنتقل للكلمة التالية وهكذا .. 🙂 

وهذه هي الدالة :

Public Function LoopThroughText(TXT As String) As String
Dim LookInHere As String
Dim Counter As Integer
Dim SplitCatcher As Variant
Dim Finaltxt As String
 
LookInHere = TXT
SplitCatcher = Split(LookInHere, " ")
 
For Counter = 0 To UBound(SplitCatcher)
    
    If SplitCatcher(Counter) = DLookup("[PerName]", "[NamesT]", "[PerName] Like '*" & SplitCatcher(Counter) & "*'") Then
        If DLookup("[Type]", "[NamesT]", "[PerName] Like '*" & SplitCatcher(Counter) & "*'") = 1 Then
            Finaltxt = Finaltxt & " " & SplitCatcher(Counter)
        Else
            Finaltxt = Finaltxt & " " & SplitCatcher(Counter) & "،"
        End If
    End If
Next
 LoopThroughText = Finaltxt
End Function

بعدها تنادي على الدالة في استعلام أو نموذج كما تشاء هكذا :

LoopThroughText(TXT)

 

AAA.accdb

تم تعديل بواسطه Moosak
  • Like 6
رابط هذا التعليق
شارك

28 دقائق مضت, قاسم اللبناني said:

نعم هذا المطلوب ربي يحفظك 

وياااريت على طريقه تخلي كل اسم لحالة  في صف مستقل

ربي يبارك فيك دكتور قاسم ..

في هذه الجزئية من الكود غير هذا :

في 5‏/5‏/2022 at 21:00, Moosak said:
Finaltxt = Finaltxt & " " & SplitCatcher(Counter) & "،"

إلى :

Finaltxt = Finaltxt & " " & SplitCatcher(Counter) & vbNewLine

 

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information