מילים נרדפות הן מילים בעלות משמעות דומה, והומופונים נשמעים אותו הדבר אך שונים במשמעויות או באיות. למדנו למצוא מילים נרדפות במספר מסמכים באמצעות Java. היום, במאמר זה, נראה כיצד לחפש הומופונים בתוך מספר מסמכים באמצעות Java.
הנושאים הבאים יכוסו להלן:
Java API לחיפוש הומופונים
GroupDocs.Search מציג את Java API GroupDocs.Search for Java המאפשר למצוא כל מילה וההומפונים שלה בתוך מספר קבצים של כל תיקייה ספציפית. זה יכול לחפש בתוכן של פורמטים שונים. בנוסף למציאת ההומפונים, ה-API תומך בטכניקות חיפוש רבות אחרות הכוללות:
- חיפוש תלוי רישיות
- חיפוש מטושטש
- חיפוש ביטויים
- חיפוש ביטויים רגילים
- חיפוש מילים נרדפות
- חיפוש Wild Card
אתה יכול להוריד את קובץ ה-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
מצא הומופונים במספר קבצים ב-Java
השלבים הבאים מנחים כיצד לחפש הומופונים במספר קבצים בתיקייה ב-Java.
- הגדר את שאילתת מילת החיפוש, תיקיית האינדקס ותיקיית המכולה של הקבצים שלך.
- צור אינדקס עם תיקיית האינדקס המוגדרת.
- הוסף את תיקיית המסמך לאינדקס.
- הגדר את SearchOptions והפעל את homophoneSearch באמצעות שיטת 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
// חפש את המילה 'נכון'
// בנוסף למילה 'נכון', ייבדקו גם ההומפונים 'טקס, כתוב, רייט, ...'
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
הדפסת תוצאות חיפוש הומופונים ב-Java
אתה יכול להשתמש בתוצאות החיפוש של ההומפונים על ידי ביצוע השלבים לאחר קבלת ההומופונים והמופעים שלהם מכל מסמך.
- חצו את תוצאות החיפוש.
- קבל כל FoundDocument בשיטת getFoundDocument.
- השתמש במאפיינים של כל FoundDocument כנדרש.
- כעת, חצו את השדות של FoundDocument על ידי קבלת FoundDocumentField.
- מאוחר יותר, מכל FoundDocumentField, קבל את כל התנאים והמופעים שלהם בתוך כל מסמך.
הדוגמה הבאה של קוד Java מדפיסה את תוצאות החיפוש ההומופונים יחד עם מספר המופעים של כל מונח חיפוש.
// הדפסת תוצאות חיפוש הומופון ב-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
// חפש את המילה 'נכון'
// בנוסף למילה 'נכון', ייבדקו גם ההומפונים 'טקס, כתוב, רייט, ...'
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 API מהתיעוד. כדי לחוות את התכונות שלו, אתה יכול לעיין בדוגמאות הזמינות במאגר GitHub. פנה אלינו לכל שאלה דרך הפורום.