简单抽取Base类

BaseActivity

public  abstract class BaseActivity extends AppCompatActivity {


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //设置内容视图
        setContentView(getLayout());

        initView();

        setListener();

        initData();


    }

    //获取布局的id
    public  abstract int getLayout();

    //查找页面上所有的组件
    public abstract void initView();

    //设置监听事件
    public abstract void setListener();

    //初使化数据
    public abstract void initData();









}

BaseFragment

public   abstract  class BaseFragment extends Fragment {

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return getFragmentLayout(inflater,container);
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        initData();



    }

    //得到fragment的视图
    public abstract View getFragmentLayout(LayoutInflater inflater,ViewGroup container);

    //初使化数据
    public abstract void initData();

    //设置监听
    public abstract  void  setListener();


}

MainActivity

public class MainActivity extends BaseActivity {


    private TextView textView;
    private List<String>  datas;

    //返回此activity对应的布局
    @Override
    public int getLayout() {
        return R.layout.activity_main;
    }

    @Override
    public void initView() {
        //一般写 findviewbyid的代码
        textView = (TextView) findViewById(R.id.tv);


    }

    @Override
    public void setListener() {

        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //调用父类的方法
                getToast("haha");

            }
        });

    }

    @Override
    public void initData() {

        datas=new ArrayList<>();
        datas.add("1111");

        //请求网络下载数据

        //动态添加fragment
        getSupportFragmentManager().beginTransaction().replace(R.id.lin,new NewsFragment()).commit();


    }
}

NewsFragment

public class NewsFragment extends BaseFragment {
    //返回当前fragmetn对应的视图
    @Override
    public View getFragmentLayout(LayoutInflater inflater, ViewGroup container) {
        return inflater.inflate(R.layout.item,container,false);
    }

    @Override
    public void initData() {
        Log.d("zzz","newsfragment:initData");


    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BERT是一种预训练语言模型,可以用于各种自然语言处理任务,包括抽取式阅读理解。在这里,我们将使用Python和PyTorch来实现BERT抽取式阅读理解。 首先,我们需要安装必要的库,包括`transformers`和`torch`,可以使用以下命令进行安装: ``` pip install transformers torch ``` 接下来,我们将使用SQuAD数据集进行抽取式阅读理解。SQuAD是一个广泛使用的数据集,其中包含有关特定文本段落的问题和答案。 我们将使用`transformers`库中的`BertForQuestionAnswering`模型,它是一个预先训练的BERT模型,可用于阅读理解任务。我们还将使用`BertTokenizer`来标记和编码输入文本。 下面是代码实现: ```python import torch from transformers import BertTokenizer, BertForQuestionAnswering # 加载预训练模型和tokenizer model = BertForQuestionAnswering.from_pretrained('bert-base-uncased') tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') # 定义输入文本和问题 text = "The capital of France is Paris." question = "What is the capital of France?" # 使用tokenizer编码输入文本和问题 input_ids = tokenizer.encode(question, text) tokens = tokenizer.convert_ids_to_tokens(input_ids) # 查找答案 start_scores, end_scores = model(torch.tensor([input_ids])) start_index = torch.argmax(start_scores) end_index = torch.argmax(end_scores) answer_tokens = tokens[start_index:end_index+1] answer = tokenizer.convert_tokens_to_string(answer_tokens) print(answer) ``` 在此代码中,我们首先加载了`BertForQuestionAnswering`模型和`BertTokenizer`。然后,我们定义了输入文本和问题,并使用tokenizer编码它们。接下来,我们将编码的输入传递给模型,并使用`argmax`函数查找最可能的开始和结束标记的位置。最后,我们将这些标记转换回答案字符串。 请注意,这只是一个简单的示例,实际上,在实际应用中,需要使用更多的技巧来处理更复杂的输入文本和问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值