تجزیه گر یا پارسر متون و تشخیص زبان با آپاچی تیکا (Apache Tika)
آپاچی تیکا:
آپاچی تیکا يکي از پروژههاي متن باز Apache است که کلاسي براي شناسايي زبان متون دارد. Tika براي استخراج متن اصلی از فایل های متنی و تجزیه کردن قسمت های مختلف فایل با توجه به متا دیتای آن کاربرد دارد. تیکا برای تعيين زبان (که در مبحث تشخیص نوع زبان به آن پرداخته شد) يک متن، ميزان فاصله بازنمايي آن متن را با بازنمايي زبانهاي موجود در سيستم تعيين ميکند و زباني که کمترين فاصله را با متن موجود دارد، در صورت رسيدن به يک اطمينان نسبي از زبان شناسايي شده، آن زبان را بر ميگرداند. فاصله بين متن موجود و زبانهاي مختلف برمبناي فاصله اقليدسيِ بسامد نسبي n-gramهاي (يعني نسبت بسامد هر n-gram به مجموع بسامد n-gramهاي موجود) واقع در بازنمايي متن و بازنمايي زبان، محاسبه ميشود. جويشگر متنباز Nutch نيز براي شناسايي زبان صفحات از Tika استفاده ميکند.
ابزار ابزاری Apache Tika ™ می تواند متادیتا و متن را از بیش از هزار نوع فایل مختلف (مانند PPT، XLS و PDF) شناسایی و استخراج کند. همه این انواع فایل ها را می توان از طریق یک رابط واحد تجزیه کرد، که Tika برای نمایه سازی موتورهای جستجو، تجزیه و تحلیل محتوا، ترجمه و غیره مفید است. شما می توانید آخرین نسخه را در صفحه دانلود پیدا کنید. لطفا برای دریافت اطلاعات بیشتر در مورد نحوه شروع استفاده از Tika صفحه شروع به کار را مشاهده کنید.
صفحات پارس و آشکارساز اصلی رابطهای Tika و نحوه کار آنها را توضیح می دهند. اگر شما علاقه مند به مشارکت در Tika هستید، لطفا به صفحه Contributing مراجعه کنید یا یک ایمیل به لیست توسعه Tika ارسال کنید.
Tika یک پروژه از بنیاد نرمافزار آپاچی است و قبلا یک زیر پروژه آپاچی لوسیان بود.
Tika براي شناسايي زبان سندها از يک فايل tika.language.properties استفاده ميکند که شامل اسامي دو حرفي زبانها بر مبناي استاندارد ISO 639 است. بر مبناي اين فايل، مجموعهاي از فايلهاي Language Profile مربوط به زبانهاي اشاره شده در tika.language.properties از حافظه جانبي خوانده ميشوند و براي ساخت pofileهاي زباني مورد استفاده توسط Tika به کار گرفته ميشوند. نام فايل هاي Language Profile به شکل <Language>.ngp است و شامل مجموعهاي از n-gramهاي حرفي به همراه فراواني آنها براي يک زبان است. بخشي از فايل en.ngp که مربوط به زبان انگليسي است در ادامه آورده شده است.
# See the License for the specific language governing permissions and # limitations under the License. _th 154732 the 117027 he_ 95427 on_ 52529 ion 52199 _in 48458 _of 47302 _to 46961
با مقايسهي اين n-gramها و n-gramهاي استخراج شده از متن يک صفحه HTML مورد بررسي، ميزان شباهت زبان متن صفحه با هر يک از زبانهاي موجود در Tika تعيين ميشود. بر اساس يک مقدار از پيش تعيين شده براي ReasonablyCertain بودن براي زبان تشخيص داده شده، زبان شناسايي شده يا مقدار null بازگردانده ميشود.
کلاس LanguageIdentifier در Tika براي تعيين زبان متن، ميزان فاصله content profile آن متن را (که مشابه با Language Profile يک زبان است) با Language Profile زبانهاي موجود در Tika تعيين ميکند و زباني که کمترين فاصله را با متن موجود دارد، در صورت رسيدن به يک اطمينان نسبي از زبان شناسايي شده، برميگرداند. فاصله بين متن موجود و زبانهاي مختلف برمبناي فاصله اقليدسيِ بسامد نسبي n-gramهاي (يعني نسبت بسامد هر n-gram به مجموع بسامد n-gramهاي موجود) واقع در profile متن و profile زبان، محاسبه ميشود.
قطعه کد زیر نحوه استفاده از کتاب خانه آپاچی تیکا را به جهت استخراج متن اصلی از یک سند متنی مثل فایل Office نشان میدهد.
public static String parseToPlainText(String filePath) { //If Your document contained more than 100000 characters, Set writeLimit to (-1) For receive the full text of the document. BodyContentHandler handler = new BodyContentHandler(-1); AutoDetectParser parser = new AutoDetectParser(); Metadata metadata = new Metadata(); try (FileInputStream stream = new FileInputStream(filePath)){ parser.parse(stream, handler, metadata); return handler.toString(); } catch (org.xml.sax.SAXException | IOException | TikaException ex) { JOptionPane.showMessageDialog(null, ex.getMessage(), "Exception in: MyTikaParser-parsToPlainText()", JOptionPane.ERROR_MESSAGE); } return null; }
قطعه کد زیر نحوه استفاده از کتاب خانه آپاچی تیکا را به منظور شناسایی زبان مورد استفاده در یک سند متنی مثل فایل Office نشان میدهد. که البته برای تشخیص زبان فارسی بهبودی روی این قطعه کد انجام شده است. چرا که کتاب خانه tika در تشخیص نوع زبان بین زبان فارسی و عربی به خوبی عمل نمیکند.
public static String identifyLanguage(String text) { LanguageIdentifier identifier = new LanguageIdentifier(text); if (identifier.getLanguage().equalsIgnoreCase("fa")){ if (text.contains("گ") || text.contains("چ") || text.contains("پ") || text.contains("ژ")) { return "fa"; } else { return "ar"; } }else { return identifier.getLanguage(); } }
منبع:
https://tika.apache.org/
آدرس کانال تلگرام سایت بیگ دیتا:
آدرس کانال سروش ما:
https://sapp.ir/bigdata_channel
جهت دیدن سرفصل های دوره های آموزشی بر روی اینجا کلیک کنید.
بازدیدها: 1562
برچسبapache Language Detection NLP parser Tika آپاچی تیکا پارس پارسر پزدازش متن تجزیه فایل های متنی تجزیه گر تشخیص زبان تشخیص متن اصلی تیکا متن کاوی
همچنین ببینید
پايگاه داده کاساندرا، روش نصب و بررسی نقاط ضعف و قوت
پايگاه داده کاساندرا یک سیستم انباره داده ی توزیعشده و کاملاً متن باز و رایگان …
قابلیت پالایش داده ها یا Allow Filtering در پایگاه داده ی کاساندرا
امروزه تولید کننده های پایگاه داده های غیر رابطه ای (nosql) در حال تلاش برای …