سؤال

لقد اكتشفت مؤخرًا عن UIMA (http://uima.apache.org/). يبدو واعداً لمهام NLP البسيطة ، مثل الرمز المميز ، وتقسيم الجملة ، وعلامة جزء من الكلام الخ.

لقد تمكنت من الحصول على عينة Java التي تم تكوينها بالفعل والتي تستخدم مكونات OpenNLP لخط الأنابيب.

الرمز يشبه هذا:

public void ApplyPipeline() throws IOException, InvalidXMLException,
        ResourceInitializationException, AnalysisEngineProcessException {

    XMLInputSource in = new XMLInputSource(
            "opennlp/OpenNlpTextAnalyzer.xml");
    ResourceSpecifier specifier = UIMAFramework.getXMLParser()
            .parseResourceSpecifier(in);

    AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(specifier);

    JCas jcas = ae.newJCas();
    jcas.setDocumentText("This is my text.");

    ae.process(jcas);
    this.doSomethingWithResults(jcas);

    jcas.reset();
    ae.destroy();
}

private void doSomethingWithResults(JCas jcas) {
    AnnotationIndex<Annotation> idx = jcas.getAnnotationIndex();
    FSIterator<Annotation> it = idx.iterator();

    while (it.hasNext()) {
        System.out.println(it.next().toString());
    }

}

مقتطف من OpenNlPtextAnalyzer.xml:

<delegateAnalysisEngine key="SentenceDetector">
    <import location="SentenceDetector.xml" />
</delegateAnalysisEngine>
<delegateAnalysisEngine key="Tokenizer">
    <import location="Tokenizer.xml" />
</delegateAnalysisEngine>

ينتج رمز Java الإخراج مثل هذا:

Token
   sofa: _InitialView
   begin: 426
   end: 435
   pos: "NNP"

أحاول الحصول على نفس المعلومات من كل كائن شرح تستخدمه طريقة TOSTRING (). لقد بحثت بالفعل في رمز مصدر UIMA لفهم من أين تأتي القيم. محاولاتي لاستردادها نوعًا من الأعمال ، لكنها ليست ذكية بأي شكل من الأشكال.

أنا أعاني من أجل العثور على أمثلة سهلة ، استخراج المعلومات من كائنات JCAS.

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

اعتقد

List<Feature> feats = it.next().getType().getFeatures();

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

أين أجد كود Java الذي يستخدم أشياء UIMA الأساسية وأين هي البرامج التعليمية الجيدة (باستثناء Javadoc من الإطار نفسه)؟

هل كانت مفيدة؟

المحلول

قم بإنشاء فئات Wrapper JCAS لأنواع التعليقات التوضيحية الخاصة بك (يمكنك القيام بذلك باستخدام البرنامج المساعد UIMA System Editor لـ Eclipse الذي يأتي مع UIMA). سيوفر لك ذلك فصول Java التي يمكنك استخدامها للوصول إلى التعليقات التوضيحية - هذه المقاييس المقصورة والمستقلين للميزات.

يجب أن تنظر إلى uimafit, ، والذي يوفر واجهة برمجة تطبيقات أكثر ملاءمة بما في ذلك طرق الراحة لاسترداد التعليقات التوضيحية من JCAs ، على سبيل المثال ، Select (JCAs ، token.class) (حيث تكون الرمز المميز.

يمكن أن تجد بعض البدء السريع البرامج النصية الرائعة ومجموعة من مكونات UIMA على DKPRO CORE صفحة.

هناك مواد من البرنامج التعليمي UIMA@GSCL 2013 (الشرائح ورمز العينة) والتي قد تكون مفيدة لك. يذهب هنا والتمرير لأسفل إلى "البرنامج التعليمي".

الإفصاح: أنا مطور في UIMA و UIMAFIT و DKPRO CORE والمؤسس المشارك في ورشة UIMA@GSCL 2013.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top