如何规范R中文档术语矩阵的行?

时间:2015-03-31 14:16:18

标签: r tm topicmodels

我有一个名为train_dtm的DocumentTermMatrix,我想在所有文档中规范化术语频率的频率计数。我面临的问题是结果矩阵也应该是DocumentTermMatrix类型,因为我想将规范化矩阵传递给R中TopicModels包的另一个方法LDA。

以下是我使用的方法:

docs_dtm <- DocumentTermMatrix(docs)

现在,我想要对上面的documenttermmatrix的行进行规范化。我甚至尝试通过

添加控制参数
docs_dtm <- DocumentTermMatrix(docs, control=list(weighting = function(x) weightTf(x, normalize=TRUE)))

但是上面的调用会抛出错误

Error in weightTf(x, normalize=TRUE): unused argument (normalize = TRUE)

我编写了使用apply()方法规范化train_dtm值的方法,但它没有返回DocumentTermMatrix类型的矩阵。

还有另一种方法可以完成上述任务吗?

2 个答案:

答案 0 :(得分:0)

你可以尝试直接传递加权参数,例如:

docs_dtm <- DocumentTermMatrix(docs, control = list(weighting = weightTf, normalize = TRUE))

答案 1 :(得分:0)

创建dtm后进行标准化:

    private void jsonParse(){
        String url="http://192.168.56.1:8095/rest/workouts/all";
        JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET,url,null,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray jsonArray) {
                        try {
                            
                            for(int i = 0; i < jsonArray.length(); i++) {


                                JSONObject jsonobject = jsonArray.getJSONObject(i);

                                String title = jsonobject.getString("title");
                                String goal = jsonobject.getString("goal");

                                txtv.append(title + ", " + goal +"\n\n");
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                });
        mQueue.add(jsonArrayRequest);
    }