sohaibafifi / languagetool

A fork of languagetool to maintain Arabic
https://languagetool.org
GNU Lesser General Public License v2.1
18 stars 1 forks source link

New java rule based on filter (verb + Mafoul mutlaq) الفعل والمفعول المطلق #67

Open linuxscout opened 2 years ago

linuxscout commented 2 years ago

Need : القاعدة الآتية:

Each rule need to get Noun (Masdar) from the verb, than inflect it to مفعول مطلق case.

linuxscout commented 2 years ago

Implemented:

Class: org/languagetool/rules/ar/VerbToMafoulMutlaqFilter.java

Data; added as Map inside code Rule: An example of rule


<?xml version="1.0" encoding="UTF-8"?>
<rule id="collo_0081_shkl_3am_Test" name="بشكل عام">
   <pattern>
      <marker>
         <token inflected="yes" postag_regexp="yes" postag="V.*;.*;.*" />
         <unify>
            <feature id="definite" />
            <token inflected="yes" postag_regexp="yes" postag="N.*;M1.*;.?B.?">أسلوب</token>
            <token inflected="yes" postag_regexp="yes" postag="NA.*;M1.*;--.?" />
         </unify>
      </marker>
   </pattern>
   <filter class="org.languagetool.rules.ar.VerbToMafoulMutlaqFilter" args="verb:\1 adj:\3" />
   <message>
      الأصوب أن تقول:
          من الشائع أن يقال: ... بشكل عام، أو تتباين بشكل ملحوظ، أو يؤكد بشكل قوي، أو حلّ المشكلة بالشكل المناسب، أو تعالج بشكل فعّال
        ويفضل أن يقال:  تتباين تبايناً ملحوظاً، يؤكد  تأكيدًا قويا، حلّ المشكلة حلًا مناسبًا، تعالج  علاجا فعّالًا.
        الأصوب أن توضع محل (بشكل) إحدى الكلمات الآتية: بطريقة، بأسلوب، بصفة، بصيغة، بوجه، بدرجة، بكيفية، الخ…. (مصدر)
   </message>
   <example correction="يعمل إعمالًا عامًا|يعمل عملًا عامًا|يعمل تعميلًا عامًا" type="incorrect">
      ‎الأمر مستقر
      <marker>يعمل بأسلوب عام</marker>
      في البلاد.
   </example>
   <example correction="يضربه ضربًا جيّدًا" type="incorrect">
      لا
      <marker>يضربه بأسلوب جيّد</marker>
      في البلاد.
   </example>
</rule>

To Do

linuxscout commented 2 years ago

To Do