python 自然语言分析第六周作业

"""写一个程序按长度对词排序。定义一个辅助函数 cmp_len,它在词长上使用 cmp
比较函数"""
def cmp_len(a,b):
    if len(a)>=len(b):
        s=a
    if len(a)<len(b):
        s=b
    return s
words=['I','love','NPL']
def cmp(words):
    words.sort(key=len)
    return words
cmp(words)
"""一个函数处理一个词链表(含重复项),返回一个按照频率递减排序的词链表(没
有重复项)。例如:如果输入链表中包含词table的 10个实例, chair的 9个实例, 那
么在输出链表中table会出现在chair前面"""
word=["1","2","3","1","2","3","2","3","3"]   
def get_feq(word):
    dic={}
    for i in range(len(word)):
        dic[word[i]]=word.count(word[i])
    
    return sorted(dic.keys(),reverse=True)
get_feq(word)

"""◑从 Python的标准库的operator模块导入itemgetter()函数( 即from operator i
mport itemgetter)。 创建一个包含几个词的链表words。现在尝试调用: sorted(w
ords, key=itemgetter(1))和sorted(words, key=itemgetter(-1))。解释item
getter()正在做什么"""
from operator import itemgetter
words=["I","LOVE","YOU"]   
sorted(words, key=itemgetter(1))        
sorted(words, key=itemgetter(-1))
#获取对象的第几个值
"""写一个程序实现发现一种n×n的四方联词的蛮力算法:纵横字谜,它的第n行的词
与第 n列的词相同。 讨论见http://itre.cis.upenn.edu/ myl/languagelog/archives/002679.ht
ml"""
s="The moment you think about giving up,think of the reason why you held on so long"
word=["The","moment","you","think","about","giving","up"]

def zonghengzimi(word):
    #生成以word为基础的,10X10的10阶乘
    import pandas as pd
    import numpy as np
    import random
    raw=[]
    for i in range(100):
        raw.append(chr(random.randint(97, 122)))
    data=pd.DataFrame(np.array(raw).reshape(10,10))
    print (len(data))
    print (data  )  
    #生成了10X10的阶乘随机字母,需要把七个词语放进去,并把一部分改成空白元素进行填写
    for i in range(len(word)):
        a=random.randint(1,10)
        b=random.randint(1,10)
        for j in range(len(word[i])):
            
            if a>b and b+len(word[i])<10:
                data.ix[a,b+j]=word[i][j]
            if a>b and b+len(word[i])>10:
                b=0
                data.ix[a,b+j]=word[i][j]
    return data
    #这样就简单生成了一个纵横字谜,尝试在这些子母中找出相应的word当中的单词
zonghengzimi(word)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云金杞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值