Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jinming6
Python
提交
fe2a1394
P
Python
项目概览
jinming6
/
Python
与 Fork 源项目一致
Fork自
inscode / Python
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Python
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
fe2a1394
编写于
4月 18, 2023
作者:
6
64392b623c05b0675a618239
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
UPDATE
上级
6714b4b5
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
98 addition
and
28 deletion
+98
-28
__pycache__/句法分析.cpython-38.pyc
__pycache__/句法分析.cpython-38.pyc
+0
-0
__pycache__/正向最大匹配算法FMM.cpython-38.pyc
__pycache__/正向最大匹配算法FMM.cpython-38.pyc
+0
-0
__pycache__/逆向最大匹配算法BMM.cpython-38.pyc
__pycache__/逆向最大匹配算法BMM.cpython-38.pyc
+0
-0
main.py
main.py
+24
-28
句法分析.py
句法分析.py
+74
-0
未找到文件。
__pycache__/句法分析.cpython-38.pyc
0 → 100644
浏览文件 @
fe2a1394
文件已添加
__pycache__/正向最大匹配算法FMM.cpython-38.pyc
0 → 100644
浏览文件 @
fe2a1394
文件已添加
__pycache__/逆向最大匹配算法BMM.cpython-38.pyc
0 → 100644
浏览文件 @
fe2a1394
文件已添加
main.py
浏览文件 @
fe2a1394
#print('欢迎来到 InsCode')
def
BMM
(
user_dict
,
sentence
):
print
(
'***开始切分BMM***'
)
segment_words
=
[]
max_len
=
max
([
len
(
item
)
for
item
in
user_dict
])
start
=
len
(
sentence
)
k
=
0
while
start
!=
0
:
k
+=
1
#句子切分结束位置
index
=
start
-
max_len
#结束位置大于句子长度
if
index
<
0
:
index
=
0
for
i
in
range
(
max_len
):
print
(
sentence
[
index
:
start
])
if
(
sentence
[
index
:
start
]
in
user_dict
)
or
(
len
(
sentence
[
index
:
start
])
==
1
):
#词在user_dict内或只有一个字
segment_words
.
insert
(
0
,
sentence
[
index
:
start
])
start
=
index
break
#失败
index
+=
1
print
(
'当前已经切分:'
,
segment_words
)
print
(
'---第'
,
k
,
'轮结束---'
)
print
(
'***切分完毕***'
)
print
(
'分词结果:'
,
segment_words
)
return
segment_words
#示例:
def
示例函数
(
参数1
,
参数2
):
#函数名称
#参数示例:参数1=***,参数2=***
print
(
'
\n
<<<函数名称>>>'
)
#在这里放代码
返回值
=
1
return
返回值
from
句法分析
import
BMM
from
句法分析
import
FMM
def
这里支持中文吗
():
名字
=
'支持中文函数名与变量名。'
print
(
名字
)
if
__name__
==
'__main__'
:
这里支持中文吗
()
#
user_dict
=
[
'时间'
,
'就'
,
'是'
,
'⽣命'
]
sentence
=
'时间就是⽣命'
BMM
(
user_dict
,
sentence
)
\ No newline at end of file
BMM
(
user_dict
,
sentence
)
FMM
(
user_dict
,
sentence
)
\ No newline at end of file
句法分析.py
0 → 100644
浏览文件 @
fe2a1394
#逆向最大匹配算法BMM
def
BMM
(
user_dict
,
sentence
):
#逆向最大匹配算法BMM
#示例:user_dict=['时间', '就', '是', '⽣命'],sentence='时间就是⽣命'
print
(
'
\n
<<<逆向最大匹配算法BMM>>>'
)
print
(
'***开始切分BMM***'
)
segment_words
=
[]
max_len
=
max
([
len
(
item
)
for
item
in
user_dict
])
start
=
len
(
sentence
)
k
=
0
while
start
!=
0
:
print
(
'---第'
,
k
+
1
,
'轮开始---'
)
k
+=
1
#句子切分结束位置
index
=
start
-
max_len
#结束位置大于句子长度
if
index
<
0
:
index
=
0
for
i
in
range
(
max_len
):
print
(
sentence
[
index
:
start
])
if
(
sentence
[
index
:
start
]
in
user_dict
)
or
(
len
(
sentence
[
index
:
start
])
==
1
):
#词在user_dict内或只有一个字
segment_words
.
insert
(
0
,
sentence
[
index
:
start
])
start
=
index
break
#失败
index
+=
1
print
(
'当前已经切分:'
,
segment_words
)
print
(
'---第'
,
k
,
'轮结束---
\n
'
)
print
(
'***切分完毕***'
)
print
(
'分词结果:'
,
segment_words
)
return
segment_words
#正向最大匹配算法FMM
def
FMM
(
user_dict
,
sentence
):
#正向最大匹配算法FMM
#示例:user_dict=['时间', '就', '是', '⽣命'],sentence='时间就是⽣命'
print
(
'
\n
<<<正向最大匹配算法FMM>>>'
)
print
(
'***开始切分***'
)
segment_words
=
[]
max_len
=
max
([
len
(
item
)
for
item
in
user_dict
])
start
=
0
k
=
0
while
start
!=
len
(
sentence
):
print
(
'---第'
,
k
,
'轮开始---'
)
k
+=
1
#句子切分结束位置
index
=
start
+
max_len
#结束位置大于句子长度
if
index
>
len
(
sentence
):
index
=
len
(
sentence
)
for
i
in
range
(
max_len
):
print
(
sentence
[
start
:
index
])
if
(
sentence
[
start
:
index
]
in
user_dict
)
or
(
len
(
sentence
[
start
:
index
])
==
1
):
#词在user_dict内或只有一个字
segment_words
.
append
(
sentence
[
start
:
index
])
start
=
index
break
#失败
index
-=
1
print
(
'当前已经切分:'
,
segment_words
)
print
(
'---第'
,
k
,
'轮结束---
\n
'
)
print
(
'***切分完毕***'
)
return
segment_words
if
__name__
==
'__main__'
:
user_dict
=
[
'时间'
,
'就'
,
'是'
,
'⽣命'
]
sentence
=
'时间就是⽣命'
BMM
(
user_dict
,
sentence
)
FMM
(
user_dict
,
sentence
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录