Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python错误-值太多_Python - Fatal编程技术网

python错误-值太多

python错误-值太多,python,Python,我正试图从标记文件中提取专有名词。但问题是,我尝试使用的代码有时会出现以下错误: Traceback (most recent call last): File "E:\pt\paragraph", line 35, in <module> sen1= noun(mylist[s]) File "E:\pt\paragraph", line 5, in noun word, tag = word.split('/') ValueError: too many values to un

我正试图从标记文件中提取专有名词。但问题是,我尝试使用的代码有时会出现以下错误:

Traceback (most recent call last):
File "E:\pt\paragraph", line 35, in <module>
sen1= noun(mylist[s])
File "E:\pt\paragraph", line 5, in noun
word, tag = word.split('/')
ValueError: too many values to unpack
如果我删除了第1段,那么当前我正在尝试使用的方法会起作用,否则会出现错误

文本样本:

A/at good/jj man/nn-hl departs/vbz-hl ./. Goodbye/uh-hl ,/,-hl Mr./np-hl Sam/np-hl./. Sam/np Rayburn/np was/bedz a/at good/jj man/nn ,/, a/at good/jj American/np ,/, and/cc ,/, third/od ,/, a/at good/jj Democrat/np ./. He/pps was/bedz all/abn of/in these/dts rolled/vbn into/in one/cd sturdy/jj figure/nn ;/. ;/. Mr./np Speaker/nn-tl ,/, Mr./np Sam/np ,/, and/cc Mr./np Democrat/np ,/, at/in one/cd and/cc the/at same/ap time/nn ./.

The/at House/nn-tl was/bedz his/pp$ habitat/nn and/cc there/rb he/pps flourished/vbd ,/, first/rb as/cs a/at young/jj representative/nn ,/, then/rb as/cs a/at forceful/jj committee/nn chairman/nn ,/, and/cc finally/rb in/in the/at post/nn for/in which/wdt he/pps seemed/vbd intended/vbn from/in birth/nn ,/, Speaker/nn-tl of/in-tl the/at-tl House/nn-tl ,/, and/cc second/od most/ql powerful/jj man/nn in/in Washington/np ./.
如果我删除第1段(A/at good/jj man/nn hl DEVICES…),代码将正常工作。如何解决这个问题

提前感谢。

您的“单词”包含多个“/”。 因此,将其解包到(标签、单词)中是行不通的。您必须弄清楚如何处理您的标记/单词有多个“/”的情况

我刚刚意识到,如果您只想在第一个“/”上进行拆分,那么可以将“maxslit”选项用于strings split方法


在“/”处拆分,并尝试获取2个值。但是你有一个“单词”有不止一个“/”!:

Sam/np-hl./. 

因此,您将得到['Sam'、'np hl'、'..],您尝试将其仅分配给两个变量。

该错误意味着
split()
方法返回的变量数量大于您在=符号左侧“解包”的变量数量

以下是一个例子:

>>> x,y = 'a,b,c,d'.split(',')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
>>> x,y,z,t = 'a,b,c,d'.split(',')
>x,y='a,b,c,d'。拆分(','))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:要解压缩的值太多
>>>x,y,z,t='a,b,c,d'。拆分(','))
这对您来说意味着
word
包含两对以上的
标记

问题是这个“对”:
Sam/np-hl./.
没有空格,所以当你拆分这对时,你实际上得到了
['Sam','np-hl','.]
,这就是导致错误的原因

>>> word = "a/b/c"
>>>
>>> word.split("/", 1)
['a', 'b/c']
Sam/np-hl./. 
>>> x,y = 'a,b,c,d'.split(',')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
>>> x,y,z,t = 'a,b,c,d'.split(',')