尝试让程序看懂小说,并能按内容检索。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
enenaaa
V2EX    分享创造

尝试让程序看懂小说,并能按内容检索。

  •  1
     
  •   enenaaa 2017-04-24 10:13:05 +08:00 6070 次点击
    这是一个创建于 3093 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目标是挖掘小说里的各种角色、剧情关系,在此基础上提供内容搜索,以及小说评点服务。 不过这些还太远了,目前只简单提取了人物关系链。

    https://www.boyunso.com/book/61872

    这个是选了较好的结果,大部分情况下错漏还有点明显。

    42 条回复    2017-04-25 15:28:39 +08:00
    yongzhong
        1
    yongzhong  
       2017-04-24 10:43:45 +08:00
    通过词频来判断是否是人名吗?关系是通过介词?
    jyf
        2
    jyf  
       2017-04-24 10:48:59 +08:00
    不知道这个提取规则是什么 如何人肉去校验?
    hydyy
        3
    hydyy  
       2017-04-24 10:52:46 +08:00
    不错不错
    enenaaa
        4
    enenaaa  
    OP
       2017-04-24 11:18:29 +08:00   1
    @yongzhong
    @jyf
    人名判断用两种方式:
    1 、在分词时通过姓氏分出人名。
    2 、在语义分析阶段,通过特定句式判定。例如:张三说道:。。。, 就判断“张三”可能是人名,这种方式能找出非规则的人名,比如择天记里的天海姓氏。
    在前面的基础上,再通过词频和特定词筛掉候选人名。

    关系提取是一个是通过完整的关系句式判定,例如:张三作为李四的父亲。还有一个是通过上下文做推测, 目前准确率还不高。

    校验方式上,我还没做太多工作,主要靠人肉抽检样本。
    isvara
        5
    isvara  
       2017-04-24 11:58:56 +08:00
    用的什么处理的?
    lrxiao
        6
    lrxiao  
       2017-04-24 12:08:43 +08:00
    有意思
    jyf
        7
    jyf  
       2017-04-24 12:32:59 +08:00
    我主要是指第二种分析 因为句式很多 也未必是 xxx 说道这种 而你也不可能全列出来 所以我很感兴趣怎么自动弄出这种句式 另外有的说到 未必是有关系 大概你现在的人与人的关系就是 A 提到过 B 这样吧?
    Jackeriss
        8
    Jackeriss  
       2017-04-24 12:59:36 +08:00   1
    怎么解决一个人物有多个名字的问题呢?比如伏地魔又叫神秘人,其实原名是汤姆里德尔。这种情况,这个人物关系图会把他们当成不同的人吧?
    hotStrip
        9
    hotStrip  
       2017-04-24 13:14:36 +08:00
    我觉得以后程序批量输出小说的话,马上就可以输出天蚕土豆和唐家三少这类小说。
    no13bus
        10
    no13bus  
       2017-04-24 13:14:50 +08:00
    这个用的是啥 js 库呢
    enenaaa
        11
    enenaaa  
    OP
       2017-04-24 13:27:33 +08:00
    @jyf
    @isvara

    基于上下文的关系推断,我做得不够深入,思路大体是:
    1 、在段内推断主语,宾语。例如:宁江提着宝剑,跑了过来,笑道: xxx 。 这 3 个分句的主语是同一个。
    2 、通过关系代词筛选段落。例如:宁小梦挽着哥哥的手臂。这个句子存在推断关系的可能。
    3 、在 1 和 2 的基础上,检索附近文本中的主语、宾语和特定语义, 判断出是否存在关系。

    可以看到,这个方法有准确性的问题。

    另外, 分析的前一步, 是分词和语义格式化。
    我首先创建词汇表、句法表、语义表,将句子格式化为已知语义的句法结构。 例如:你好 -> 招呼语义。 妹妹打我->主语是妹妹,谓语是打,宾语是我的指向动作语义。

    这个方式当然不能识别所有的句子, 对于一般的小说文本,目前识别率在 5%~10%之间。
    enenaaa
        12
    enenaaa  
    OP
       2017-04-24 13:32:06 +08:00
    @Jackeriss 是有这个问题, 我也没想到好的办法。也许关系链准确后, 可以通过人物关系消除。
    enenaaa
        13
    enenaaa  
    OP
       2017-04-24 13:32:47 +08:00
    @no13bus 百度的 echarts
    imn1
        14
    imn1  
       2017-04-24 15:08:26 +08:00   2
    无论准确率如何,我都觉得这个项目很有意思
    无论这个项目多有意思,我还是持怀疑态度看待

    其实,
    人与人之间的关系是相当复杂的,很多不能用语言文字描述
    但是,当人们以语言文字介绍一些关系时,却是用简化的方式介绍,实际分类很少,看看自己的 SNS 分组就知道,不至于有几百个组别吧?
    你可以从这个思路着眼,不要只想着“提取”,也可以用“排除”,从粗分类排除,再按细分类排除,加强准确率
    需要很多逻辑判断,几乎是一个语义分析的 AI bot 了,语义逻辑库应该是重点

    例如:
    男性-->亲戚-->母亲家族-->长辈-->母亲的平辈-->舅舅
    男性-->工作-->长辈-->经理-->上司

    另外
    1.还要用多因素分析,如上面引入其他人(母亲)的关系辅助
    2.多重关系,如家族生意,既是亲戚,也是工作关系等等
    3.关系是双向的,例如逻辑出现“舅舅”,当然要同时得到“外甥”,不能单向推导

    总的来说,相当难,不过这第一个吃螃蟹,我是持支持态度,希望能持久做下去
    lcatt
        15
    lcatt  
       2017-04-24 15:21:08 +08:00
    目前检索速度很快,是只读取了一部分文字么?
    graetdk
        16
    graetdk  
       2017-04-24 15:30:53 +08:00
    赞啊,我对这个也很感兴趣,可以加我微信: Z3JlYXRkaw== (Base64 编码)
    enenaaa
        17
    enenaaa  
    OP
       2017-04-24 15:40:41 +08:00
    @lcatt 不是文本检索,而是通过关键字检索。 分析时生成人名、归类新词,输出关键字列表。在我机器上, 分析一本 2.5m 的小说大约需要 10 秒, 比较慢。
    lcatt
        18
    lcatt  
       2017-04-24 15:58:28 +08:00
    @enenaaa 我试了下,发现: 1.有些重要的角色没检索出, 2.出现了一些莫名的角色和关联,比如“马背上”。。。,以及很多只出现了几章的配角,所以才问是不是只读取了一部分内容而不是基于全本小说的。
    enenaaa
        19
    enenaaa  
    OP
       2017-04-24 16:06:04 +08:00
    @lcatt 嗯, 是只分析了前 250 章的内容。
    人名消歧也还存在问题,上一个版本纯粹的归类算法更严重, 这个版本好了不少 。还在改进中。
    jyf
        20
    jyf  
       2017-04-24 17:48:42 +08:00   1
    @enenaaa 这个关系推断我建议你多找网友训练 最后让他自己学习到这些
    solobat
        21
    solobat  
       2017-04-24 17:55:00 +08:00
    收藏了,希望越来越好
    enenaaa
        22
    enenaaa  
    OP
       2017-04-24 17:57:16 +08:00
    @jyf 你是说用 RNN , LSTM 之类的深度学习算法来建立特征吗, 我感觉这种方式工作量太大了,短期内很难有什么结果。
    xiubin
        23
    xiubin  
       2017-04-24 18:04:25 +08:00
    择天记 中 苟寒食和荀梅 是怎么发生关系的?
    https://www.boyunso.com/book/103392
    zzk819166453
        24
    zzk819166453  
       2017-04-24 18:36:26 +08:00 via Android
    很有意思
    jyf
        25
    jyf  
       2017-04-24 19:49:35 +08:00   1
    @enenaaa 那倒用不着神经网络 纯粹是贝叶斯那一套就行了 如果你只关心词性在句子中的排列问题 这个量并不大 也不复杂
    hzwei
        26
    hzwei  
       2017-04-24 23:19:33 +08:00
    哈哈哈,很有意思
    artandlol
        27
    artandlol  
       2017-04-25 01:59:33 +08:00 via Android
    这个不错
    红楼梦 百年孤独 家春秋 。。。
    WildCat
        28
    WildCat  
       2017-04-25 04:23:38 +08:00
    不错,赞一个!
    yuluofanchen
        29
    yuluofanchen  
       2017-04-25 08:41:10 +08:00 via iPhone
    记得有类似的,是读的三国。然后做成网站了。
    hythyt9898
        30
    hythyt9898  
       2017-04-25 09:05:34 +08:00
    试了下《大主宰》《天神诀》,貌似女主都识别不出来
    ahkxhyl
        31
    ahkxhyl  
       2017-04-25 09:38:01 +08:00
    https://www.boyunso.com/book/27817 貌似不太准吧? 关键词 大主宰
    ahkxhyl
        32
    ahkxhyl  
       2017-04-25 09:40:21 +08:00
    Rice
        33
    Rice  
       2017-04-25 09:42:11 +08:00
    有些意思,但是不准
    Troevil
        34
    Troevil  
       2017-04-25 09:45:29 +08:00
    想想那些反转剧,角色身份变换的.... 醉了
    enenaaa
        35
    enenaaa  
    OP
       2017-04-25 09:58:35 +08:00
    @xiubin 亲昵关系是用肢体接触动作判定的, 所以。。
    RUstKkin
        36
    RUstKkin  
       2017-04-25 10:05:25 +08:00
    wordvector 有用吗
    RUstKkin
        37
    RUstKkin  
       2017-04-25 10:06:12 +08:00
    避孕套头像。。。
    demo
        38
    demo  
       2017-04-25 10:17:29 +08:00
    看了一下,是只取了前面部分章节。
    enenaaa
        39
    enenaaa  
    OP
       2017-04-25 11:06:03 +08:00
    @RUstKkin 没有, 完全没有使用神经网络。 我希望分析是建立在稳定可信的基础上, 所以放弃了词向量。好在我也不是想要个通用的程序。
    ifaii
        40
    ifaii  
       2017-04-25 12:14:23 +08:00 via iPhone
    这个有意思
    SingeeKing
        41
    SingeeKing  
    PRO
       2017-04-25 12:32:59 +08:00
    校花的贴身高手

    vh2h
        42
    vh2h  
       2017-04-25 15:28:39 +08:00
    准不准是另外一个事儿~

    歪个楼~

    推荐下你喜欢的网络小说。谢谢
    关于     帮助文档   自助推广系统     博客     API     FAQ     Solana     2801 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 00:27 PVG 08:27 LAX 17:27 JFK 20:27
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86