add image

This commit is contained in:
lhy_in_blcu@126.com 2019-05-02 01:25:00 +08:00
parent 43ebd700bf
commit 608e34c05a
4 changed files with 57 additions and 31 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -2,7 +2,7 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="7d73eeac-bcfb-4439-a5bc-734bf782761e" name="Default" comment=""> <list default="true" id="7d73eeac-bcfb-4439-a5bc-734bf782761e" name="Default" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/military_qa.py" beforeDir="false" afterPath="$PROJECT_DIR$/military_qa.py" afterDir="false" />
</list> </list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
@ -23,14 +23,14 @@
</usages-collector> </usages-collector>
<usages-collector id="statistics.file.extensions.edit"> <usages-collector id="statistics.file.extensions.edit">
<counts> <counts>
<entry key="py" value="14481" /> <entry key="py" value="14658" />
<entry key="txt" value="14" /> <entry key="txt" value="14" />
</counts> </counts>
</usages-collector> </usages-collector>
<usages-collector id="statistics.file.types.edit"> <usages-collector id="statistics.file.types.edit">
<counts> <counts>
<entry key="PLAIN_TEXT" value="14" /> <entry key="PLAIN_TEXT" value="14" />
<entry key="Python" value="14481" /> <entry key="Python" value="14658" />
</counts> </counts>
</usages-collector> </usages-collector>
<usages-collector id="statistics.file.extensions.open"> <usages-collector id="statistics.file.extensions.open">
@ -67,8 +67,8 @@
<file pinned="false" current-in-tab="true"> <file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/military_qa.py"> <entry file="file://$PROJECT_DIR$/military_qa.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="903"> <state relative-caret-position="4097">
<caret line="140" column="32" selection-start-line="140" selection-start-column="32" selection-end-line="140" selection-end-column="32" /> <caret line="451" column="16" selection-start-line="451" selection-start-column="16" selection-end-line="451" selection-end-column="16" />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -76,7 +76,7 @@
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/insert_data.py"> <entry file="file://$PROJECT_DIR$/insert_data.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="79"> <state relative-caret-position="107">
<caret line="105" column="13" selection-start-line="105" selection-start-column="13" selection-end-line="105" selection-end-column="13" /> <caret line="105" column="13" selection-start-line="105" selection-start-column="13" selection-end-line="105" selection-end-column="13" />
<folding> <folding>
<element signature="e#0#9#0" expanded="true" /> <element signature="e#0#9#0" expanded="true" />
@ -110,6 +110,8 @@
<find>pattern</find> <find>pattern</find>
<find>数量</find> <find>数量</find>
<find>print</find> <find>print</find>
<find>parser_dict</find>
<find>'n_weapon', 'n_attr', 'n_weapon', 'n_attr'</find>
</findStrings> </findStrings>
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
@ -125,10 +127,11 @@
<option value="$PROJECT_DIR$/insert_data.py" /> <option value="$PROJECT_DIR$/insert_data.py" />
<option value="$PROJECT_DIR$/collect_data.py" /> <option value="$PROJECT_DIR$/collect_data.py" />
<option value="$PROJECT_DIR$/militarygraph.py" /> <option value="$PROJECT_DIR$/militarygraph.py" />
<option value="$PROJECT_DIR$/military_qa.py" />
</list> </list>
</option> </option>
</component> </component>
<component name="ProjectFrameBounds" fullScreen="true"> <component name="ProjectFrameBounds" extendedState="1">
<option name="x" value="2" /> <option name="x" value="2" />
<option name="y" value="23" /> <option name="y" value="23" />
<option name="width" value="1680" /> <option name="width" value="1680" />
@ -175,7 +178,7 @@
</list> </list>
</option> </option>
</component> </component>
<component name="RunManager" selected="Python.militarygraph"> <component name="RunManager" selected="Python.military_qa">
<configuration default="true" type="tests" factoryName="Attests"> <configuration default="true" type="tests" factoryName="Attests">
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" /> <option name="PARENT_ENVS" value="true" />
@ -279,6 +282,27 @@
<option name="INPUT_FILE" value="" /> <option name="INPUT_FILE" value="" />
<method v="2" /> <method v="2" />
</configuration> </configuration>
<configuration name="military_qa" type="PythonConfigurationType" factoryName="Python" temporary="true">
<module name="military_graph" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/military_qa.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
<configuration name="militarygraph" type="PythonConfigurationType" factoryName="Python" temporary="true"> <configuration name="militarygraph" type="PythonConfigurationType" factoryName="Python" temporary="true">
<module name="military_graph" /> <module name="military_graph" />
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
@ -305,9 +329,11 @@
<item itemvalue="Python.drug_graph" /> <item itemvalue="Python.drug_graph" />
<item itemvalue="Python.militarygraph" /> <item itemvalue="Python.militarygraph" />
<item itemvalue="Python.insert_data" /> <item itemvalue="Python.insert_data" />
<item itemvalue="Python.military_qa" />
</list> </list>
<recent_temporary> <recent_temporary>
<list> <list>
<item itemvalue="Python.military_qa" />
<item itemvalue="Python.militarygraph" /> <item itemvalue="Python.militarygraph" />
<item itemvalue="Python.insert_data" /> <item itemvalue="Python.insert_data" />
<item itemvalue="Python.data" /> <item itemvalue="Python.data" />
@ -329,7 +355,7 @@
<servers /> <servers />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="0" y="0" width="1680" height="1050" extended-state="0" /> <frame x="2" y="23" width="1680" height="971" extended-state="1" />
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.0596745" /> <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.0596745" />
@ -337,7 +363,7 @@
<window_info id="Favorites" order="2" side_tool="true" /> <window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" /> <window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" weight="0.6765306" /> <window_info anchor="bottom" id="Run" order="2" weight="0.80714285" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
@ -375,16 +401,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/insert_data.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="79">
<caret line="105" column="13" selection-start-line="105" selection-start-column="13" selection-end-line="105" selection-end-column="13" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/militarygraph.py"> <entry file="file://$PROJECT_DIR$/militarygraph.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2758"> <state relative-caret-position="2758">
@ -405,10 +421,20 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/insert_data.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="107">
<caret line="105" column="13" selection-start-line="105" selection-start-column="13" selection-end-line="105" selection-end-column="13" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/military_qa.py"> <entry file="file://$PROJECT_DIR$/military_qa.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="903"> <state relative-caret-position="4097">
<caret line="140" column="32" selection-start-line="140" selection-start-column="32" selection-end-line="140" selection-end-column="32" /> <caret line="451" column="16" selection-start-line="451" selection-start-column="16" selection-end-line="451" selection-end-column="16" />
</state> </state>
</provider> </provider>
</entry> </entry>

BIN
image/example1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 KiB

View File

@ -337,14 +337,14 @@ class MilitaryGraph:
parser_dict['n_units'] = [wd for wd,flag in wds if flag == 'n_unit'] parser_dict['n_units'] = [wd for wd,flag in wds if flag == 'n_unit']
parser_dict['n_weapons'] = [wd for wd,flag in wds if flag == 'n_weapon'] parser_dict['n_weapons'] = [wd for wd,flag in wds if flag == 'n_weapon']
parser_dict['pattern'] = [flag for wd, flag in wds if flag in ['n_attr', 'n_time', 'n_big', 'n_small', 'n_unit', 'n_country', 'n_compare', 'n_most', 'n_weapon']] parser_dict['pattern'] = [flag for wd, flag in wds if flag in ['n_attr', 'n_time', 'n_big', 'n_small', 'n_unit', 'n_country', 'n_compare', 'n_most', 'n_weapon']]
parser_dict['wds'] = wds # parser_dict['wds'] = wds
return parser_dict return parser_dict
'''答案搜索''' '''答案搜索'''
def search_answer(self, parser_dict): def search_answer(self, parser_dict):
print(parser_dict) print('step1:问句解析 >>', parser_dict)
pattern = parser_dict['pattern'] pattern = parser_dict['pattern']
print(pattern) print('step2:查询模板 >>',pattern)
search_data = [] search_data = []
condition = {} condition = {}
targets = ['名称'] targets = ['名称']
@ -425,6 +425,7 @@ class MilitaryGraph:
['n_country','n_weapon', 'n_attr', 'n_weapon', 'n_attr'], ['n_country','n_weapon', 'n_attr', 'n_weapon', 'n_attr'],
['n_country','n_weapon', 'n_attr', 'n_country','n_weapon', 'n_attr'], ['n_country','n_weapon', 'n_attr', 'n_country','n_weapon', 'n_attr'],
['n_weapon', 'n_attr', 'n_attr', 'n_weapon', 'n_attr'], ['n_weapon', 'n_attr', 'n_attr', 'n_weapon', 'n_attr'],
['n_weapon', 'n_attr', 'n_attr', 'n_weapon', 'n_attr', 'n_attr'],
['n_country','n_weapon', 'n_attr', 'n_attr', 'n_weapon', 'n_attr'], ['n_country','n_weapon', 'n_attr', 'n_attr', 'n_weapon', 'n_attr'],
['n_country','n_weapon', 'n_attr', 'n_country',' n_weapon', 'n_attr', 'n_attr'], ['n_country','n_weapon', 'n_attr', 'n_country',' n_weapon', 'n_attr', 'n_attr'],
['n_country','n_weapon', 'n_attr', 'n_attr', 'n_weapon', 'n_attr', 'n_attr'], ['n_country','n_weapon', 'n_attr', 'n_attr', 'n_weapon', 'n_attr', 'n_attr'],
@ -438,8 +439,8 @@ class MilitaryGraph:
n_weapons = [self.weapon_dict.get(weapon) for weapon in parser_dict.get('n_weapons')] n_weapons = [self.weapon_dict.get(weapon) for weapon in parser_dict.get('n_weapons')]
n1_weapon = n_weapons[0] n1_weapon = n_weapons[0]
n2_weapon = n_weapons[1] n2_weapon = n_weapons[1]
targets1 = [self.attribute_dict.get(weapon) for indx, weapon in enumerate(parser_dict.get('n_attrs')) if indx < len(n_indxes)] targets1 = [self.attribute_dict.get(weapon) for indx, weapon in enumerate(parser_dict.get('n_attrs')) if indx < n_indxes[1]-1]
targets2 = [self.attribute_dict.get(weapon) for indx, weapon in enumerate(parser_dict.get('n_attrs')) if indx >= len(n_indxes)] targets2 = [self.attribute_dict.get(weapon) for indx, weapon in enumerate(parser_dict.get('n_attrs')) if indx >= n_indxes[1]-1]
condition1 = {'名称': n1_weapon} condition1 = {'名称': n1_weapon}
condition2 = {'名称': n2_weapon} condition2 = {'名称': n2_weapon}
search_data.append({'condition':condition1, 'targets': targets1}) search_data.append({'condition':condition1, 'targets': targets1})
@ -578,10 +579,9 @@ class MilitaryGraph:
parser_dict = self.question_parser(question) parser_dict = self.question_parser(question)
results = self.search_answer(parser_dict) results = self.search_answer(parser_dict)
if results == [[]]: if results == [[]]:
print('sorry, do not know the answer yet...') print('小勇:对不起,目前暂时还无法回答此类问题...')
else: else:
print('find %s result:'% len(results)) print('小勇:共找到%s个答案, 下面是具体明细:'% len(results))
print('answer detail:')
for result in results: for result in results:
print(result) print(result)
return return
@ -589,5 +589,5 @@ class MilitaryGraph:
if __name__ == '__main__': if __name__ == '__main__':
handler = MilitaryGraph() handler = MilitaryGraph()
while 1: while 1:
question = input("enter an question to parser:\n") question = input("用户:").strip()
handler.qa_main(question) handler.qa_main(question)