gpt4 book ai didi

python - 需要有关 RNN 模型格式化字符串的建议

转载 作者:行者123 更新时间:2023-11-30 09:35:07 24 4
gpt4 key购买 nike

情况

我目前正在学习 Tensorflow,第一次尝试(在遵循/尝试 MINST 教程之后)我想创建一个模型(可能是 RNN)来执行一些基本的字符串格式化:

我知道对于下面的案例我可能不需要像深度学习那么复杂的东西,但这只是为了训练自己。

我有一组假定的“干净地址”字符串,我想在其中提取实际的干净地址。

她就是我想要得到的转变:

RUE DE MADAGASCAR   --> RUE DE MADAGASCAR 
ZI DE LA PLAINE
55 RUE DU 1ER SEPTEMBRE 1944 --> 55 RUE DU 1ER SEPTEMBRE 1944
ZONE INDUSTRIELLE RUE DE LA VALLEE B.P. 8 --> RUE DE LA VALLEE
BP 62 AVENUE BECQUEREL --> AVENUE BECQUEREL
291 VOIE ATLAS --> 291 VOIE ATLAS
12 RUE ARMAND BUSQUET ZONE INDUSTRIELLE --> 12 RUE ARMAND BUSQUET
DOSSIER MLOC 5 RUE AMABLE LOZAI --> 5 RUE AMABLE LOZAI
ZI CAEN CANAL -->
RUE DE L'EUROPE ZI PORTUAIRE --> RUE DE L'EUROPE
BP 5229 BOULEVARD HENRY BECQUEREL CAMPUS JULES HOROWITZ --> BOULEVARD HENRY BECQUEREL
GIE MONSIEUR GAUTIER BOULEVARD H. BECQUEREL BP 5027 --> BOULEVARD H. BECQUEREL
21 PLACE DE LA REPUBLIQUE --> 21 PLACE DE LA REPUBLIQUE
18 RUE DE LA GIRAFE --> 18 RUE DE LA GIRAFE
21 RUE DES GOUDRIERS --> 21 RUE DES GOUDRIERS
AVENUE STRASSBURGER --> AVENUE STRASSBURGER
7 RUE DE L'EGLISE --> 7 RUE DE L'EGLISE
1060 RUE LEON FOUCAULT ZI DE LA SPHERE --> 1060 RUE LEON FOUCAULT

我需要更多示例:这里是 spreadsheet 的链接包含 200 个元素(计划扩展到 1000 - 5000 个元素)

正如您所看到的,有很多可识别的模式:

  • 不要使用 BP 个单词以及后面的 2 或 4 位数字
  • 请勿使用 ZIZAZone d'activiter ...
  • 地址通常类似于 00 (Rue|Voie|Avenue|...) nameOfStreet
  • 等等...

我认为如何进行

我正在尝试获取作为输入字符串一部分的输出字符串。它将根据上述模式删除单词。

我认为我会继续使用 RNN 类型的图,因为它应该检测诸如“有一个“BP”之类的东西,所以我不会采用这个词,并且如果下一个输入是 2 或 4 位数字的字符串 I我也不接受那些”,我认为应该有某种内存。

这完全取决于我想要输入数据的方式。我想我有两三种方法可以做到这一点:

  • 输入单个单词(按空格分隔)
  • 输入整个字符串(整个地址)
  • 输入一个字符串,然后将其分割到更深的一层?

事情是:

  • 如果输入单个单词,如何标记字符串分隔?

  • 如果我输入整个字符串,看起来有点像丢失了
    系统只会获取或删除单个单词。

  • 第三种选择(混合两种)是否有意义?

是否可以批量训练,使用“批量部分”输入多个单词,每个批量代表和寻址。

另外,我想知道在我的系统中,节点的权重是否全部为 0 和 1(因为它只能接受或删除单个单词),或者是否为中间值,例如保留词。

流程回顾

  1. 创建所有单个单词的字典
  2. 将我的字符串填充到相同的长度?
  3. 将我的所有字符串(或单词?)转换为一维数组
  4. 定义图表
  5. 小批量输入字符串(或单词?)
  6. 测试和显示准确性(输出字符串是否与预期输出完全匹配,或者预期输出与输出之间的差异百分比更有趣?)
  7. 保存图表
  8. 用它来格式化我的字符串

非常感谢您阅读所有内容,如有任何帮助,我们将不胜感激。

特别是关于我前进的总体方向,以及将数据输入图表的方式。

最佳答案

有两种方法可以立即想到解决问题:

  • 序列标记 - 用 1 或 0 标记输入中的每个单词,指示是否应保留该单词。
  • seq2seq 模型 - 让 RNN 读取整个输入,然后逐字或逐字符生成输出。

如果您刚刚开始,我会推荐序列标记模型。如果您想这样做,我将遵循的步骤是:

  1. 将输入表示为 one-hot 向量序列(每个维度代表一个单词)
  2. 将标签表示为 1 和 0 的序列(指示是否应保留每个单词)
  3. 使用 rnn 读取每个序列
  4. 使用 2 节点层输出每个单词的 1 类和 0 类分数
  5. 使用优化器最大限度地减少预测标签与实际标签之间的差异

有关如何在 tensorflow 中进行序列标记的示例,请查看: https://github.com/guillaumegenthial/sequence_tagging

关于python - 需要有关 RNN 模型格式化字符串的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45140619/

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