gpt4 book ai didi

text - 从排序的短语列表中提取频率数据

转载 作者:行者123 更新时间:2023-12-04 16:32:18 25 4
gpt4 key购买 nike

在查阅了有关列表操作的文档/过去的问题之后,我发现了空白 - 许多案例都涉及数字,而我正在处理大量文本。

我有一个常见的三词短语(trigrams)的排序列表,它们出现在大量文本信息中,通过 Mathematica 的 Partition[]、Tally[] 和 Sort[] 命令生成。我正在操作的数据类型的一个例子(我有数百个这样的文件):

{{{wa, wa, wa}, 66}, {{i, love, you}, 62}, {{la, la, la}, 50}, {{meaning, of, life}, 42}, {on, come, on}, 40}, {{come, on, come}, 40}, {{yeah, yeah, yeah}, 38}, {{no, no, no}, 36}, {{we, re, gonna}, 36}, {{you, love, me}, 35}, {{in, love, with}, 32}, {{the, way, you}, 30}, {{i, want, to}, 30}, {{back, to, me}, 29}, <<38211>>, {{of, an, xke}, 1}}



我希望搜索这个文件,以便如果输入是“意义,生活”,它将返回“42”。我觉得我一定是忽略了一些明显的东西,但在修补之后我在这里撞到了一堵砖墙。 Mathematica 在其文档中数量众多,这并不奇怪。

最佳答案

假设您可以以您概述的形式将数据加载到 Mathematica,一件非常简单的事情就是创建一个哈希表,其中您的三元组将是(复合)键。这是您的样本(您提供的部分):

trigrams = {{{"wa", "wa", "wa"}, 66}, {{"i", "love", "you"}, 62}, 
{{"la", "la", "la"}, 50}, {{"meaning", "of", "life"}, 42},
{{"on", "come", "on"}, 40}, {{"come", "on", "come"}, 40},
{{"yeah", "yeah", "yeah"}, 38}, {{"no", "no", "no"}, 36},
{{"we", "re", "gonna"}, 36}, {{"you", "love", "me"}, 35},
{{"in", "love", "with"}, 32}, {{"the", "way", "you"}, 30},
{{"i", "want", "to"}, 30}, {{"back", "to", "me"}, 29},
{{"of", "an", "xke"}, 1}};

这是创建哈希表的一种可能方法:
Clear[trigramHash];
(trigramHash[Sequence @@ #1] = #2) & @@@ trigrams;

现在,我们像这样使用它
In[16]:= trigramHash["meaning","of","life"]
Out[16]= 42

当然,如果您执行多次搜索,这种方法将很有用。

编辑

如果您有许多文件并希望在 Mathematica 中高效搜索它们,您可以做的一件事是使用上述散列机制将所有文件转换为 .mx二进制 Mathematica 文件。这些文件针对快速加载进行了优化,并用作要存储的定义的持久性机制。以下是它的工作方式:
In[20]:= DumpSave["C:\\Temp\\trigrams.mx",trigramHash]
Out[20]= {trigramHash}

In[21]:= Quit[]

In[1]:= Get["C:\\Temp\\trigrams.mx"]
In[2]:= trigramHash["meaning","of","life"]
Out[2]= 42

您使用 DumpSave创建一个 .mx文件。因此,建议的程序是将您的数据逐个文件加载到 Mathematica 中,创建散列(您可以使用 SubValues 来索引具有文件索引的特定散列表),然后将这些定义保存到 .mx 中。文件。通过这种方式,您可以获得快速加载和快速搜索,并且您可以自由决定在任何给定时间将哪部分数据加载到 Mathematica 中(几乎不会影响性能,通常与文件加载相关)。

关于text - 从排序的短语列表中提取频率数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7629311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com