首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >把句子从第一人称转到第二人称

把句子从第一人称转到第二人称
EN

Stack Overflow用户
提问于 2016-12-09 00:17:31
回答 2查看 1.9K关注 0票数 0

我试图用nltk用Python编写一个脚本,它将一个句子从第二人称改为第一人称。例句:句子

代码语言:javascript
运行
复制
I went to see Avatar and you came with me

应该变成

代码语言:javascript
运行
复制
You went to see Avatar and I came with you

在nltk中有一个内置函数来实现这个功能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-09 04:20:56

英语中不应该有太多的人称代词和所有格代词。如果您创建了第一人称表单和第二人称表单之间的对应字典,那么您可以标记原始句子并替换字典中的单词:

代码语言:javascript
运行
复制
forms = {"am" : "are", "are" : "am", 'i' : 'you', 'my' : 'yours', 'me' : 'you', 'mine' : 'yours', 'you' : 'I', 'your' : 'my', 'yours' : 'mine'} # More?
def translate(word):
  if word.lower() in forms: return forms[word.lower()]
  return word

sent = 'You went to see Avatar, and I came with you.'
result = ' '.join([translate(word) for word in nltk.wordpunct_tokenize(sent)])
print(result.caputalize())
# I went to see avatar , and you came with i .

由于you的模糊性,您可能无法获得更好的结果。

票数 2
EN

Stack Overflow用户

发布于 2016-12-09 00:27:44

呃,不确定是否使用内置函数,但您可以尝试.replace()

例如:

代码语言:javascript
运行
复制
.replace("I","You")

将字符串中的每一个"I“改为"You”

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41051125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档