分词统计(⼆)读取TXT⽂件并统计数量
本篇将完成对词的统计,使⽤了讯飞语⾔云进⾏解析,还完成了对单个字使⽤的统计,统计完成可以⼀键导出数据到sdcard根⽬录下进⾏查看。
⼤概的步骤如下:
词的统计
1、读取⽂件⽂字
2、因为讯飞语⾔云单次解析不能超过70个分词,所以需要对数量进⾏分组
3、每分⼀组启动⼀个IntentService进⾏⽹络请求
4、⽹络请求完毕对⽂字进⾏筛选,保存到数据库
5、所有的⽹络请求完成后显⽰数据
字的统计
1、读取⽂件⽂字
2、对⽂字进⾏筛选,保存到数据库
3、完成后显⽰数据
涉及的技术:
ormlite数据库
Retrofit2.0同步和异步请求
IntentService的使⽤
效果图展⽰:
主界⾯的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="schemas.android/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<Button
android:id="@+id/button_terms"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="词统计"/>
<Button
android:id="@+id/button_word"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="字统计"/>
<Button
android:id="@+id/button_clear"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="清空数据"/>
<Button
android:id="@+id/button_export"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="导出数据"/>
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="结果:"
android:textSize="20dp"/>
<TextView
android:id="@+id/txt_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#000000"/>
</LinearLayout>
</ScrollView>
</LinearLayout>
主界⾯类,需要注意的是讯飞语⾔云单次解析不能超过70个分词,所以这⾥进⾏了分组,每组最多50个字,避免请求失败package com.mwf.analyze.activity;
t.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.github.ller.DialogSelectionListener;
import com.github.del.DialogConfigs;
import com.github.del.DialogProperties;
import com.github.angads25.filepicker.view.FilePickerDialog;
import com.mwf.analyze.R;
import com.mwf.analyze.bean.AnalyzeBean;
import com.mwf.analyze.dao.AnalyzeDao;
import com.mwf.analyze.services.ParseTermService;
import com.mwf.analyze.services.ParseTermService;
import com.mwf.analyze.services.ParseWordsService;
import com.mwf.analyze.utils.FileUtils;
import java.io.File;
DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
/**
* 1、打开⽂件
* 2、开启⼦线程读取⽂件数据并分组
* 3、开启IntentService对每组请求数据
* 4、对返回数据进⾏处理
*/
public class AnalyzePoemActivity extends AppCompatActivity implements View.OnClickListener, ParseTermService.IUpdateUI, ParseTermService.ILoadFinish, Pa public final String TAG = Class().getName();
@BindView(R.id.button_terms)
Button button_terms;
@BindView(R.id.button_word)
Button button_word;
@BindView(R.id.button_export)
Button button_export;
@BindView(R.id.button_clear)
Button button_clear;
@BindView(_content)
TextView mTxtContent;
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_analyze_poem);
ButterKnife.bind(this);
getSupportActionBar().hide();
/
/显⽰上⼀次的数据
AnalyzeDao dao = new AnalyzeDao(AnalyzePoemActivity.this);
List<AnalyzeBean> list = dao.queryAll(300, true);
String text;
for (int i = 0; i < list.size(); i++) {
text = Text().toString();
text += ((i).getName() + " ==" + (i).getAmount() + "个\n");
mTxtContent.setText(text);
}
}
/**
* 打开⽂件选择器android retrofit
*/
private void openFile(DialogSelectionListener listener) {
DialogProperties properties = new DialogProperties();
properties.selection_mode = DialogConfigs.SINGLE_MODE;
properties.selection_type = DialogConfigs.FILE_SELECT;
< = new File(DialogConfigs.DEFAULT_DIR);
<_dir = new File(DialogConfigs.DEFAULT_DIR);
properties.offset = new File(DialogConfigs.DEFAULT_DIR);
FilePickerDialog dialog = new FilePickerDialog(AnalyzePoemActivity.this, properties);
dialog.setTitle("选择⼀个⽂件");
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论