ابحث عن Homophones في Files باستخدام GroupDocs

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

سيتم تناول الموضوعات التالية أدناه:

Java API للبحث عن المتجانسات

GroupDocs.Search يعرض Java API GroupDocs.Search for Java التي تسمح بالعثور على أي كلمة و homophones الخاصة بها داخل ملفات متعددة من أي مجلد معين. يمكنه البحث في محتوى تنسيقات مختلفة. بالإضافة إلى العثور على المتجانسات ، تدعم واجهة برمجة التطبيقات العديد من تقنيات البحث الأخرى التي تشمل:

  • بحث حساس لحالة الأحرف
  • بحث غامض
  • البحث بالعبارة
  • البحث عن التعبيرات العادية
  • بحث المرادفات
  • بحث وايلد كارد

يمكنك تنزيل ملف JAR من قسم التنزيلات أو استخدام أحدث تكوينات التبعية Maven داخل تطبيقات Java الخاصة بك.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>21.8</version> 
</dependency>
PM> Install-Package GroupDocs.Search

البحث عن Homophones في ملفات متعددة في Java

توجه الخطوات التالية كيفية البحث عن المتجانسات في ملفات متعددة لمجلد في Java.

  • حدد استعلام كلمة البحث ومجلد الفهرسة ومجلد الحاوية لملفاتك.
  • أنشئ فهرس بمجلد الفهرس المحدد.
  • أضف مجلد المستند إلى الفهرس.
  • حدد خيارات البحث وقم بتمكين البحث الهوموفوني باستخدام طريقة setUseHomophoneSearch.
  • قم بإجراء البحث عن المتجانسات باستخدام طريقة البحث.
  • استخدم خصائص SearchResult المسترجعة حسب الحاجة.

يعثر كود مصدر Java التالي على جميع المتجانسات داخل ملفات المجلد المحدد. علاوة على ذلك ، يمكنك أيضًا إدارة قاموسك المتجانسة.

// ابحث عن المتجانسات في ملفات ومجلدات متعددة باستخدام Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// إنشاء فهرس في المجلد المحدد
Index index = new Index(indexFolder);
index.add(documentsFolder);

// إنشاء كائن خيارات البحث
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// ابحث عن كلمة "right"
// بالإضافة إلى كلمة "right" ، سيتم البحث أيضًا عن شعائر المتجانسة "طقوس ، كتابة ، كتابة ، ..."
SearchResult result = index.search(query, options);

System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

إخراج الكود أعلاه كما يلي:

Query: right
Documents: 2
Occurrences: 17

يمكنك استخدام نتائج البحث المتجانسة باتباع الخطوات بعد الحصول على الهوموفونات وتواترها من كل وثيقة.

  • اجتياز نتائج البحث.
  • احصل على كل FoundDocument باستخدام طريقة getFoundDocument.
  • استخدم خصائص كل FoundDocument كما هو مطلوب.
  • الآن ، قم باجتياز حقول FoundDocument عن طريق الحصول على FoundDocumentField.
  • لاحقًا ، من كل FoundDocumentField ، احصل على جميع المصطلحات وتكرارها داخل كل مستند.

يقوم مثال كود Java التالي بطباعة نتائج البحث المتجانسة جنبًا إلى جنب مع عدد مرات حدوث كل مصطلح تم البحث عنه.

// طباعة نتائج بحث Homophone في Java
System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

// اجتياز المستندات
for (int i = 0; i < result.getDocumentCount(); i++) {
    FoundDocument document = result.getFoundDocument(i);
    System.out.println("Document: " + document.getDocumentInfo().getFilePath());
    System.out.println("Occurrences: " + document.getOccurrenceCount());
  
  // اجتياز الحقول الموجودة
  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // وجدت الطباعة حيث وجدت
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t" + field.getTerms()[k] + "\t - \t" + field.getTermsOccurrences()[k]);
            }
        }
    }
}

التالي هو إخراج مثال الكود أعلاه.

Query: right
Documents: 2
Total occurrences: 17

Document: C:/documents/sample.docx
Occurrences: 11
    Field: content
    Occurrences: 11
        right             3
        rite               4
        wright           1
        write             3
Document: C:/documents/sample.txt
Occurrences: 6
    Field: content
    Occurrences: 6
        right             4
        write             2

ابحث عن المتجانسات ونتائج الطباعة باستخدام Java - أكمل الكود

يجمع كود Java التالي بين الخطوات المذكورة أعلاه. في البداية ، يعثر على الهوموفونات حسب الاستعلام ، ثم يطبع جميع تكرارات الهوموفون من كل مستند داخل المجلد المتوفر.

// ابحث عن المتجانسات في ملفات ومجلدات متعددة باستخدام Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "right";

// إنشاء فهرس في المجلد المحدد
Index index = new Index(indexFolder);
index.add(documentsFolder);

// إنشاء كائن خيارات البحث
SearchOptions options = new SearchOptions();
options.setUseHomophoneSearch(true); // Enable Homophone Search

// ابحث عن كلمة "right"
// بالإضافة إلى كلمة "right" ، سيتم البحث أيضًا عن شعائر المتجانسة "طقوس ، كتابة ، كتابة ، ..."
SearchResult result = index.search(query, options);

System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Homophone Occurrences: " + result.getOccurrenceCount());

for (int i = 0; i < result.getDocumentCount(); i++) {
    FoundDocument document = result.getFoundDocument(i);
    System.out.println("Document: " + document.getDocumentInfo().getFilePath());
    System.out.println("Occurrences: " + document.getOccurrenceCount());

  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // وجدت الطباعة حيث وجدت
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t" + field.getTerms()[k] + "\t - \t" + field.getTermsOccurrences()[k]);
            }
        }
    }
}

استنتاج

في الختام ، تعلمت كيفية العثور على الكلمات ونغماتها المتجانسة من مستندات متعددة داخل مجلد محدد باستخدام Java. يمكنك محاولة تطوير تطبيق Java الخاص بك للبحث عن المتجانسات باستخدام GroupDocs.Search for Java.

تعرف على المزيد حول واجهة برمجة تطبيقات Java Search Automation من الوثائق. لتجربة ميزاته ، يمكنك إلقاء نظرة على الأمثلة المتاحة في مستودع GitHub. تواصل معنا لأي استفسار عبر المنتدى.

أنظر أيضا