Python深拷贝与浅拷贝 isalpha()用法 FNLP coursework

处理FNLP coursework1 代码时发现:

1、 python和C/C++拷贝机制的不同

python中赋值时进行的拷贝是浅拷贝
要深拷贝需要:

import copy	
orig_a=a				#浅拷贝
orig_a=copy(a)			#浅拷贝
orig_a=copy.deepcopy(a)	#深拷贝

2、 isalpha()的用法:

如果前面不加上encode()方法,在判断非英语字符时会失误

string="这是汉字"
print(string.isaplha())		 	#True
print(string.encode().isaplha()) #False

3、FNLP部分源码

使用NLP库:NLTK(2.4.5)进行NLP任务,包括N-gram Model的调用,将corpora分解成句子/词语,计算交叉熵等

##NLTK 示例代码
from nltk_model import *
from nltk.corpus import brown
from nltk.probability import LidstoneProbDist
import copy

est = lambda fdist, bins: LidstoneProbDist(fdist, 0.2)
lm = NgramModel(3, brown.words(categories='news'), estimator=est)
print(lm)
print(lm._backoff)
print(lm.entropy(['The', 'Fulton', 'County', 'Grand', 'Jury', 'said',
                  'Friday', 'an', 'investigation', 'of', "Atlanta's", 'recent',
                  'primary', 'election', 'produced', '``', 'no', 'evidence',
                  "''", 'that', 'any', 'irregularities', 'took', 'place', '.']))

a = [['?', 'A', ':', 'RomanMack6s', 'http://formspring.me/RomanMack6s/q/90468625', 'Name', 'Q', ':', 'Whats', 'Your'],
     ['a', 'avisen', 'ccs', 'cuando', 'fino', '..', 'hoy', 'llegen', 'lo', 'paso', 'Por', 'q', 'que', '@user2075716'],
     ['@user10319815', ':', 'お疲れ様です', '。', 'ブログに掲載されたサルコジ大統領のスピーチ', '、', '心を揺り動かす', '、', '言葉では表現できないような力強さを感じました', '。',
      'こんな素晴らしいメッセージに巡り会えて幸せです', '。', '有難うございました', '。', 'そんな風に言っていただけると嬉しいです', '。', 'RT']]

or_a=copy.deepcopy(a)  #python的赋值本质是浅拷贝  深拷贝要用deepcopy方式


for s in a:
    new_s = []
    for w in s:
        if w.isalpha():
            new_s.append(w)
    s = new_s
print(or_a==a) #这种for写法(不用下标访问)无法真实替换原先迭代对象里的元素!本质是深拷贝!

for i in range(len(a)):
    new_s = []
    for w in a[i]:
        if w.encode().isalpha():
            new_s.append(w)
    a[i] = new_s

print(or_a==a)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Kaze-1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值