基于统计生成相似句(同义句),再用神经网络rnn语言模型判断句子的通顺性!

主要生成相似句 再用神经网络判定句子的通顺性

直接上代码  

两部分工作:

第一部分基于统计生成相似语料:

         借助网上的python的github上的synonyms(自行百度):https://github.com/huyingxi/Synonyms   这里要说一下 分词不要用         垃圾 的jieba 可以考虑hanlp 或者其他的 ;

        效果如下:

       例如 ”查看公司财务“

        生成的句子:

          查看公司的财务
        查看公司的财政
        查看公司的财务状况
       查看公司的公司财务
      查看公司的税务
      查看公司的负债
     查看公司的财务管理
    查看公司的帐目
    查看公司的人力资源
    查看公司的人事管理
     查看该公司的财务
       查看该公司的财政
         查看该公司的财务状况
         查看该公司的公司财务
             查看该公司的税务
             查看该公司的负债
               查看该公司的财务管理
                 查看该公司的帐目
                 查看该公司的人力资源
                    查看该公司的人事管理
                        查看的公司的财务
                        查看的公司的财政
                         查看的公司的财务状况

自己思路: 中文语料库进行分词,然后进行获取同义词替换,这里可以考虑n-gram   n=1,2,3  做

       Bi-Gram:  P(T)=p(w1|begin)*p(w2|w1)*p(w3|w2)***p(wn|wn-1)

       Tri-Gram:  P(T)=p(w1|begin1,begin2)*p(w2|w1,begin1)*p(w3|w2w1)***p(wn|wn-1,wn-2)

       里面的概率用统计词频来处理求解  具体求解可以参考:https://blog.csdn.net/weixin_37767223/article/details/83187802

       最后根据概率大小判定句子是不是通顺, 这个 我这里就没做 感兴趣的可以做一下 比较简单  

 

第二部分神经网络模型判定句子通顺性:

      例如:我的顺心很不工作      分数: 11.457166507915696

                   我的工作很不顺心    分数: 37.69209207976687  

后面优化如下:

由于数据量大(500w)后面做一些改进

1. softmax 进行优化 主要把softmax   改写成  hierarchical softmax  

2.主要把句子通顺性的对比进行阈值的确定

网络模型代码:

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--data_dir', type=str, default='data/',
                        help=&
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值