繁体   English   中英

使用Apache OpenNLP在句子中查找位置时如何解决问题

How can I resolve the issue when finding location in a sentence using Apache OpenNLP

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

package com.example.dell.apacheopennlp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import java.io.IOException;
import java.io.InputStream;
import opennlp.tools.namefind.NameFinderME;
import opennlp.tools.namefind.TokenNameFinderModel;
import opennlp.tools.tokenize.TokenizerME;
import opennlp.tools.tokenize.TokenizerModel;
import opennlp.tools.util.Span;
public class apacheOpenNLP extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_apache_open_nlp);
        final TextView txt = (TextView) findViewById (R.id.txtView);

        InputStream inputStream = null;
        TokenizerModel tokenModel =null;
        try{
            inputStream = getAssets().open("en-token.bin");
            tokenModel = new TokenizerModel (inputStream);
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
            txt.setText (e.toString ()+" inside catch of token");
        }

        if(tokenModel!=null) {
            TokenizerME tokenizer = new TokenizerME (tokenModel);
            String paragraph = "Tutorialspoint is located in Hyderabad";
            String tokens[] = tokenizer.tokenize (paragraph);
            InputStream locationInputStream=null;
            TokenNameFinderModel locationModel = null;

            try {

                locationInputStream = getAssets ( ).open ("en-ner-location.bin");
                locationModel = new TokenNameFinderModel (locationInputStream);

            } catch (IOException e) {
                e.printStackTrace ( );
                txt.setText (e.toString ()+" inside catch of location");
            }

            if (locationModel != null) {
                NameFinderME nameFinder = new NameFinderME (locationModel);
                Span nameSpans[] = nameFinder.find (tokens);

                String result = null;
                for (Span s : nameSpans)
                    //result=  s.toString()+"  "+tokens[s.getStart()];
                    result += s.toString ( );
                txt.setText (result);
            }
            else{
               // txt.setText ("Location model is empty");
            }
        }
    }
}

我正在使用Apache OpenNLP提取句子中的位置。 我调试了代码,发现在NameFinderME nameFinder = new NameFinderME(locationModel)之后; android应用程序崩溃,显示一条消息“该应用程序已停止工作”如何解决此问题?

1 个回复

您可以尝试将nameFinder更改为声明为TokenNameFinder接口类型吗?

只是尝试更换

NameFinderME nameFinder = null

TokenNameFinder nameFinder = null

休息都应该一样。

5 在webview android中旋转时如何解决问题的全屏视频?

我在webview android中使用我的网站创建android应用程序,我为全屏视频设置了OK,但是当任何视频为全屏时,旋转了我的移动webview重新加载了页面,并退出了全屏页面。 我从堆栈溢出检查此问题并获得帮助,但我不知道为此状态编写代码 ...

2019-11-06 19:23:08 0 11   android
6 当我想使用漫游器在Skype中显示多个视频时如何解决问题

我正在使用BotFramework进行机器人项目,因为我正在使用一些视频在机器人中显示,这里的问题是当我在本地显示视频时它工作正常,并且当我配置为Skype时,它仅显示一个视频在Skype中。 代码是这样的: 当我在Skype中打电话时,它显示的视频如下所示,并且可以成功播放。 ...

7 使用axios在发布请求中传递ReactJS状态数据时如何解决问题?

我在使用Axios时遇到问题。 所以,在这里我想弄清楚我在使用Axios方法时做错了什么。 反应状态数据 这是我作为发布数据传递的数据对象。 阿克西奥斯 响应:我已经在服务器端打印了发布数据。 这是发布数据在服务器上没有达到预期的问题。 像这样开始 并以这样的方式结束 我期待如 ...

8 如何解决问题-在缓存中找不到元素-自查找以来,页面可能已更改

我正在尝试查找元素集,然后单击每个元素,这将我带到新页面并在该新页面上执行一些步骤。 然后单击浏览器上的后退按钮,或单击新页面上的按钮(将我带到上一页),然后找到相同的元素,并对其余元素重复上述过程。 我在继续查找元素之前使用下面的代码再次查找元素,但是我的代码无法正常工作。 有人可以 ...

9 如何解决问题的R

这个东西的意思是什么? R o R o R o R = R o R o R 据我了解,这意味着 R 的 R 的 R 与 R 的 R 的 R 相同,但似乎离散数学中还有更多内容 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM