ååã¯ãQA察話ã·ã¹ãã ãäœæããã«ããã£ãŠå¿ èŠãšãªããforæã«ããç¹°ãè¿ãåŠçãã«ã€ããŠèª¬æããŸãããç¶ãä»åã¯ãåããQA察話ã·ã¹ãã ãäœæããäžã§å¿ èŠãšãªããæ£èŠè¡šçŸãã«ã€ããŠè§£èª¬ããŸãã
ãæ£èŠè¡šçŸãã§ãããæè»ãªæå忝èŒãå®çŸãã
ä»åäœæããQA察話ã·ã¹ãã ã§ã¯ãçšæãã質ååçãªã¹ããããŠãŒã¶ãŒçºè©±ã«è¿ã質åãèŠã€ããåŠçãå¿ èŠãšãªããŸãã
ããã§ããããŸã§ã«æ¬é£èŒã§äœæããŠãã察話ã·ã¹ãã ã«ãããŠããŠãŒã¶ãŒçºè©±ã®å 容ã§åå²ããåŠçãæãåºããŠã¿ãŸããããäŸãã°ã10åã§å®è£ ãããããã³ã察話ã·ã¹ãã ãã§ã¯ã以äžã®ããã«ããŠãŒã¶ãŒçºè©±ããšãç¹å®ã®æååããæ¯èŒãããã®çµæã«å¿ããŠåå²åŠçãããŠããŸããã
utterance = input("ãŠãŒã¶ãŒçºè©±> ")
if utterance == "ããã³ã":
...
ãã®åŠçã§ã¯ãŠãŒã¶ãŒããããã³ãããšã ã話ããããïŒå ¥åããïŒå Žåã«ã¯ããã³ããè¡ããŸããããããã³ãããããã§ãããããã®ãããã³ãããé¡ãããŸããã®ããã«ãããã³ãã以å€ã®èšèã䌎ã£ãŠããå Žåãããã³ããè¡ãããšãã§ããŸãããããã§ãããæè»ã«ãŠãŒã¶ãŒçºè©±ã®å å®¹ãšæ¯èŒããææ®µãå¿ èŠã«ãªãããã§ãã
ä»å玹ä»ããæ£èŠè¡šçŸã§ã¯ããç¹æ®æåãã䜿ããæ±ºãŸã£ãæžåŒã«ã®ã£ãšã£ãŠããã¿ãŒã³ããèšè¿°ããããšã§ãæååããã®ãã¿ãŒã³ã«ããããããã©ããããšããæ¯èŒãã§ããŸãããã®çµæãšããŠãéåžžã®æåååå£«ã®æ¯èŒã ãã§ã¯å®çŸã§ããªããããªãããæè»ãªæ¯èŒãå¯èœãšãªãããã§ãã
ãããã£ãŠãæ£èŠè¡šçŸã§ã¯ãã¿ãŒã³ã®æžãæ¹ãéèŠãšãªããŸããããããããã»ã©èº«æ§ããå¿ èŠã¯ãããŸãããç°¡åãªãã¿ãŒã³ã§ããã°ãæžãæ¹ãããã«çè§£ã§ããã¯ããªã®ã§ãããã€ã玹ä»ããããšæããŸãã
ãã¿ãŒã³ã®æžãæ¹
éåžžã®æåã䜿ã£ããã¿ãŒã³ã¯ãããèªèº«ãšåãæåïŒåïŒã«ãããããŸããäŸãã°ã察話ã·ã¹ãã ããšèšè¿°ãããã¿ãŒã³ã¯ãã察話ã·ã¹ãã ããšããæååã«ããããããšãã£ãå ·åã§ãã
ããã§ã¯ãå®éã«Pythonã§èšè¿°ããŠã¿ãŸãããã
ãŸããPythonã§æ£èŠè¡šçŸã䜿ãã«ã¯ããreã¢ãžã¥ãŒã«ãã䜿ããŸããreã¢ãžã¥ãŒã«ã«å®çŸ©ãããŠããsearch颿°ã¯ããã¿ãŒã³ãæååã®äžéšåã«ããããããã©ããããã§ãã¯ãã颿°ã§ãã1ã€ç®ã®åŒæ°ã«ãã¿ãŒã³ãã2ã€ç®ã®åŒæ°ã«æååãæž¡ããŠããã¿ãŒã³ãæååã®äžéšåã«ããããããã©ããã確èªããŸãããããŠãsearch颿°ã®æ»ãå€ãifæã§å€å®ããç¶ãã€ã³ãã³ããããè¡ã§ãããããå Žåã®åŠçããelse以äžã§ãããããªãã£ãå Žåã®åŠçãèšè¿°ããŸãã
# re_str.py - æååãã¿ãŒã³ã®ããã°ã©ã
import re
pattern = "察話ã·ã¹ãã "
text = "察話ã·ã¹ãã "
# æåå text ãããã¿ãŒã³ pattern ã«ããããããå€å®ãã
if re.search(pattern, text):
print("ãããããŸãã")
else:
print("ãããããŸããã§ãã")
ãã®ããã°ã©ã ããre_str.pyããšããã¹ã¯ãªããåã§ä¿åïŒå®è¡ããŠã¿ãŠãã ããããããšããã¿ãŒã³ïŒpatternïŒã察話ã·ã¹ãã ãã¯æååïŒtextïŒã察話ã·ã¹ãã ãã«å«ãŸããŠããïŒå šéšã«ãããããïŒã®ã§ãifæã«ç¶ãã€ã³ãã³ããããè¡ãå®è¡ããããããããŸããããšè¡šç€ºãããŸãã
$ python re_str.py
ãããããŸãã
ãªããäžè¿°ããããã«ãsearch颿°ã¯ããã¿ãŒã³ãæååã®äžéšåã«ãããããã©ãããããã§ãã¯ãããã®ãªã®ã§ãäŸãã°ãã¿ãŒã³ïŒpatternïŒã察話ã·ã¹ãã ãã¯ãæååïŒtextïŒãããã¯å¯Ÿè©±ã·ã¹ãã ã§ããã«ããããããããšã«æ³šæããŠãã ããã
ã§ã¯ãä»åºŠã¯ãã¿ãŒã³ã«ç¹æ®æåã䜿ã£ãŠã¿ãŸããããç¹æ®æåã«ã¯ããŸããŸãªçš®é¡ãããã®ã§ãããäŸãã°ãã.ïŒãããïŒãã¯ãããããããããšãã£ã1æåããæãæååã«ãããããŸãããã®.ãéåžžã®æååãšçµã¿åãããŠäœã£ãã察話.ã·ã¹ãã ããšãããã¿ãŒã³ã¯ãã察話ããšãã·ã¹ãã ãã®éã«äœã1æåæãã ã察話ã®ã·ã¹ãã ããã察話ãšã·ã¹ãã ããšãã£ãæååã«ãããããŸãã
ããã確ãããããã°ã©ã ããre_dot.pyããšããã¹ã¯ãªããåã§æžããŠã¿ãŸãããã
# re_dot.py - dotãã¿ãŒã³ã®ããã°ã©ã
import re
pattern = "察話.ã·ã¹ãã "
texts = ["察話ã®ã·ã¹ãã ", "察話ã·ã¹ãã "]
# foræã§å€æ°textã«é ã«ãããããã確èªããæååãæçžãã
for text in texts:
if re.search(pattern, text):
print(pattern, text, "ãããããŸãã")
else:
print(pattern, text, "ãããããŸããã§ãã")
ãã®ã³ãŒãã§ã¯ãåå玹ä»ããforæã䜿ã£ãŠã倿°textsäžã®æååãé ã«å€æ°textã«æçžããæ£èŠè¡šçŸã䜿ã£ããã¿ãŒã³ïŒpatternïŒã«ããããããã©ãããå€å®ããŠããŸããå®è¡ãããšãã察話ã®ã·ã¹ãã ãã«ã¯ãããããã察話ã·ã¹ãã ãã«ã¯ãããããªãããšã確èªã§ããŸãã
$ python re_dot.py
察話.ã·ã¹ãã 察話ã®ã·ã¹ãã ãããããŸãã
察話.ã·ã¹ãã 察話ã·ã¹ãã ãããããŸããã§ãã
ããã§ã¯ãã察話ã·ã¹ãã ãã察話ã®ã·ã¹ãã ãã察話ã§ããã·ã¹ãã ãã®ããã«ãã察話ããšãã·ã¹ãã ãã®éã«æååãå ¥ã£ãŠããããå ¥ã£ãŠããªãã£ãããããã®å šãŠã«ããããããã¿ãŒã³ã¯ã©ããã£ãŠæžãã°ããã®ã§ããããã
ããã§ç»å Žããã®ãç¹°ãè¿ãã衚ãç¹æ®æåã*ïŒã¢ã¹ã¿ãªã¹ã¯ïŒãã§ãã*ã¯ãçŽåã®æåã®0å以äžã®ç¹°ãè¿ãã衚ããŸãã
ã0å以äžããšãã衚çŸãå°ããããã«ãããããããŸãããäŸãã°ãããã*ããšãããã¿ãŒã³ã¯ããããããããããããããŠãããïŒ*ã®çŽåã®æåãããããªãç¶æ ïŒãšãããããŸãããã®ã*ã®çŽåã®æåããªãç¶æ ãã0åã®ç¹°ãè¿ãã«çžåœããŸãã
ããŠããã®*ã«ããç¹°ãè¿ãã.ãšå ±ã«äœ¿ã£ãŠäœã£ããã¿ãŒã³ã察話.*ã·ã¹ãã ããèããŠã¿ãŸãããã.ã¯ä»»æã®1æåã衚ãã*ã¯çŽåã®æåã®0å以äžã®ç¹°ãè¿ãã衚ãã®ã§ãã.*ãã¯ä»»æã®æååã衚ãããšã«ãªããŸãããããªãã°ãã察話ã·ã¹ãã ãã察話ã®ã·ã¹ãã ãã察話ã§ããã·ã¹ãã ãã®å šãŠã®æååãšãããã§ããã¯ãã§ãã
ããã§ã¯ãå çšäœæããre_dot.pyã®ãã¿ãŒã³ãšãããããæååã®ãªã¹ãã倿ŽããŠå®è¡ããŠã¿ãŸããããæ¬¡ã®ããã°ã©ã ããre_ast.pyããšããã¹ã¯ãªããåã§ä¿åããŠãã ããã
# re_ast.py - asteriskãã¿ãŒã³ã®ããã°ã©ã
import re
pattern = "察話.*ã·ã¹ãã "
texts = ["察話ã·ã¹ãã ", "察話ã®ã·ã¹ãã ", "察話ã§ããã·ã¹ãã "]
# for æã§ text 倿°ã«é ã«ãããããã確èªããæååãæçžãã
for text in texts:
if re.search(pattern, text):
print(pattern, text, "ãããããŸãã")
else:
print(pattern, text, "ãããããŸããã§ãã")
å®è¡ãããšãæåŸ éãã®åäœãããŠããããšã確ãããããŸãã
$ python re_ast.py
察話.*ã·ã¹ãã 察話ã·ã¹ãã ãããããŸãã
察話.*ã·ã¹ãã 察話ã®ã·ã¹ãã ãããããŸãã
察話.*ã·ã¹ãã 察話ã§ããã·ã¹ãã ãããããŸãã
ååãä»åãš2åã«æž¡ããQA察話ã·ã¹ãã ãå®è£ ããäžã§å¿ èŠãšãªãforæãšæ£èŠè¡šçŸã«ã€ããŠç޹ä»ããŸãããæ¬¡åã¯ãããããQA察話ã·ã¹ãã ãå®è£ ããŸããã!
èè 玹ä»
![]() |
æ ªåŒäŒç€ŸNTTãã³ã¢
R&Dã€ãããŒã·ã§ã³æ¬éšããµãŒãã¹ã€ãããŒã·ã§ã³éš
é¿éšæ²å¹ž
2015幎京éœå€§åŠå€§åŠé¢çåŠç ç©¶ç§æ°åŠã»æ°çè§£æå°æ»ä¿®äºã
å幎ãNECã«å
¥ç€Ÿã
2016幎ããåœç«ç ç©¶éçºæ³äººæ
å ±éä¿¡ç ç©¶æ©æ§åºåã
2018幎ããçŸè·ã
èªç¶èšèªåŠçãç¹ã«å¯Ÿè©±ã·ã¹ãã ã®ç ç©¶éçºã«åŸäºã
æ¯æ¥è©±ããããªãAIã倢èŠãŠæ¥å€ã³ãŒãã£ã³ã°ã«å±ãã
GitHubïŒhttps://github.com/noriyukipy
