需要关于RNN模型的建议来格式化字符串吗

2024-10-01 15:48:13 发布

您现在位置:Python中文网/ 问答频道 /正文

形势

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

我知道我可能不需要像下面这样复杂的深入学习,但这只是为了训练自己。你知道吗

我有一组假定的“clean address”字符串,我想在其中提取实际的clean address。你知道吗

她就是我想要的那种转变:

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位数字的字符串,我也不接受这些”,我认为应该有某种内存。你知道吗

这完全取决于我输入数据的方式。我想我有两到三种方法:

  • 输入单个单词(按空格分隔)
  • 输入整个字符串(整个地址)
  • 输入一个字符串,然后在更深的层上拆分它?你知道吗

问题是:

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

  • 如果我输入整个字符串,它看起来有点像一个lost,因为
    系统只会接受或删除一个单词。

  • 第三种选择(两者混合)有意义吗?

是否可以批量训练,使用“批量部分”输入多个单词,每个批次表示和地址。你知道吗

另外,我想知道在我的系统中,节点的权重是否都是0和1(因为它应该只能接受或删除单个单词),或者是否是中间值,比如保留单词的概率。你知道吗

过程回顾

  1. 创建包含所有单个单词的词典
  2. 把我的琴弦编成同样的长度?你知道吗
  3. 转换所有字符串(或单词?)变成一个1D阵列
  4. 定义图形
  5. 输入字符串(或单词?)小批量生产
  6. 测试和显示精度(输出字符串是预期输出的精确匹配还是预期输出和输出之间的差异百分比更有趣?)你知道吗
  7. 保存图形
  8. 用它来格式化我的字符串

非常感谢您通读,如有任何帮助,我们将不胜感激。你知道吗

特别是关于我的方向,以及我的数据输入到图表的方式。你知道吗


Tags: 字符串cleanaddress地址de单词labp
1条回答
网友
1楼 · 发布于 2024-10-01 15:48:13

有两种方法可以很快解决问题:

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

如果你刚刚开始,我推荐序列标签模型。如果您想这样做,我将遵循以下步骤:

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

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

相关问题 更多 >

    热门问题