在 J 中创建频率矩阵(计算数组中的项目数)

Creating Frequency Matrix (counting number of items in array) in J

>text
┌───────────┬──────────┬───────────┬──────────┬──────────┬─────────┬──────────┬─────────────┬─────────────┬──────────┬───────────────┬──────────┬──────────┬────────────┬─────────────────┬──────────┬──────────┬──────────────┬─────────────┬─────────────┬────...
│speak      │conceal   │terribl    │option    │write     │book     │come      │tuesdai      │matter       │act       │conceal        │catastroph│integr    │depart      │justic           │put       │wai       │choic         │realli       │bad          │opti...
├───────────┼──────────┼───────────┼──────────┼──────────┼─────────┼──────────┼─────────────┼─────────────┼──────────┼───────────────┼──────────┼──────────┼────────────┼─────────────────┼──────────┼──────────┼──────────────┼─────────────┼─────────────┼────...
│trump      │logu      │talk       │entir     │time      │talk     │entir     │time         │discov       │someth    │frequent       │doe       │logu      │thi         │direct           │logu      │direct    │logu          │differ       │direct       │cons...
├───────────┼──────────┼───────────┼──────────┼──────────┼─────────┼──────────┼─────────────┼─────────────┼──────────┼───────────────┼──────────┼──────────┼────────────┼─────────────────┼──────────┼──────────┼──────────────┼─────────────┼─────────────┼────...
│cohen      │lawyer    │object     │taint     │team      │anoth    │unusu     │move         │lawyer       │trump     │file           │emerg     │motion    │court       │sundai           │night     │sai       │presid        │object       │extraordinari│meas...
├───────────┼──────────┼───────────┼──────────┼──────────┼─────────┼──────────┼─────────────┼─────────────┼──────────┼───────────────┼──────────┼──────────┼────────────┼─────────────────┼──────────┼──────────┼──────────────┼─────────────┼─────────────┼────...
│photo      │presid    │trump      │fire      │jame      │comei    │director  │mai          │did          │mean      │end            │comei     │time      │public      │memoir           │higher    │loyalti   │releas        │comei        │featur       │wide...
├───────────┼──────────┼───────────┼──────────┼──────────┼─────────┼──────────┼─────────────┼─────────────┼──────────┼───────────────┼──────────┼──────────┼────────────┼─────────────────┼──────────┼──────────┼──────────────┼─────────────┼─────────────┼────...
│british    │deleg     │organ      │wrote     │twitter   │russia   │syria     │allow        │access       │douma     │unfett         │access    │essenti   │russia      │syria            │cooper    │western   │diplomat      │confirm      │syria        │russ...
├───────────┼──────────┼───────────┼──────────┼──────────┼─────────┼

cleaned_text

    ┌─────┬───────┬───────┬──────┬─────┬────┬────┬───────┬──────┬───┬───────┬──────────┬──────┬──────┬──────┬───┬───┬─────┬──────┬───┬──────┬──────────┬──────┬────┬────┬────┬────────┬─────┬─────┬───────┬───────┬───────┬───────┬───┬─────┬───────┬────┬───────┬──...
    │speak│conceal│terribl│option│write│book│come│tuesdai│matter│act│conceal│catastroph│integr│depart│justic│put│wai│choic│realli│bad│option│catastroph│option│hard│call│tell│congress│thing│chang│clinton│fervent│support│disagre│sai│least│philipp│rein│longtim│tr...
    └─────┴───────┴───────┴──────┴─────┴────┴────┴───────┴──────┴───┴───────┴──────────┴──────┴──────┴──────┴───┴───┴─────┴──────┴───┴──────┴──────────┴──────┴────┴────┴────┴────────┴─────┴─────┴───────┴───────┴───────┴───────┴───┴─────┴───────┴────┴───────┴──...

"text" 的每一行都是一篇新闻文章,我试图从每篇文章中的 cleaned_text 中找出每个词汇的数量,以便我可以创建这样的频率矩阵:

    art1 art2 art3 ...
mai 4    5    4 
sai 1    0    0
...

我在找e。和 E. verbs 来计算每篇文章中每个词汇的数量,但在这种情况下我很难使用它们。

谁能帮我解决这个问题???谢谢!

我会使用稍微不同的方法。为了简单起见,我将使用 p

的示例
   p
┌─────┬─────┬─────┬─────┬─────┐
│pants│shirt│shirt│hat  │pants│
├─────┼─────┼─────┼─────┼─────┤
│shoes│shoes│socks│pants│shirt│
├─────┼─────┼─────┼─────┼─────┤
│shirt│hat  │pants│shoes│shoes│
├─────┼─────┼─────┼─────┼─────┤
│socks│pants│shirt│shirt│hat  │
├─────┼─────┼─────┼─────┼─────┤
│pants│shoes│shoes│socks│pants│
├─────┼─────┼─────┼─────┼─────┤
│shirt│shirt│hat  │pants│shoes│
└─────┴─────┴─────┴─────┴─────┘

要计算每件衣服的数量,我需要将每一行与整个词汇表进行比较。我通过 ravelling (,) p 和 nub (~.) 获得了整个词汇表,这确保了 p 中的每个可能的词都被考虑在内。

   ~.@:,p
┌─────┬─────┬───┬─────┬─────┐
│pants│shirt│hat│shoes│socks│
└─────┴─────┴───┴─────┴─────┘

现在我将转置 (|:) p,这样我就可以使用 =/ 将每一行与 nub 进行比较,最后计算每一项的总和。 +/@:

   +/@:(|: =/ ~.@,)p
2 2 1 0 0
1 1 0 2 1
1 1 1 2 0
1 2 1 0 1
2 0 0 2 1
1 2 1 1 0

根据小块读取这些数字,我看到第一行有 2 条裤子 2 件衬衫 1 顶帽子 0 只鞋和 0 只袜子,经检查这是正确的。第二行有1-pant 1-shirt 0-hats 2-shoes and 1-sock等等...

希望对您有所帮助。